python实现简单聊天应用 python群聊和点对点均实现
Posted BabyGo000
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python实现简单聊天应用 python群聊和点对点均实现相关的知识,希望对你有一定的参考价值。
如果只是拿过去运行看结果,请注意平台相关性以及python版本号,本示例开发运行平台为win7x86_64 pycharm community,python版本号为3.5!!!
TALK IS CHEAP, SHOW YOU MY CODE:
客户端
#coding:utf-8
\'\'\'
file:client.py.py
date:2017/9/11 11:01
author:lockey
email:lockey@123.com
platform:win7.x86_64 pycharm python3
desc:p2p communication clientside
\'\'\'
from socket import *
import threading,sys,json,re
#引入json模块主要是为了数据的封装传输,re的话是做一些合法性的验证
HOST = \'192.168.1.7\'
PORT=8022
BUFSIZE = 1024 ##缓冲区大小 1K
ADDR = (HOST,PORT)
myre = r"^[_a-zA-Z]\\w{0,}"
tcpCliSock = socket(AF_INET,SOCK_STREAM)
#创建一个socket连接
userAccount = None
#用户登录标志,也用来记录登录的用户名称
def register():
#用户注册函数
print("""
Glad to have you a member of us!
""")
accout = input(\'Please input your account: \')
if not re.findall(myre, accout):
print(\'Account illegal!\')
return None
password1 = input(\'Please input your password: \')
password2 = input(\'Please confirm your password: \')
if not (password1 and password1 == password2):
print(\'Password not illegal!\')
return None
global userAccount
userAccount = accout
regInfo = [accout,password1,\'register\']
datastr = json.dumps(regInfo)
tcpCliSock.send(datastr.encode(\'utf-8\'))
data = tcpCliSock.recv(BUFSIZE)
data = data.decode(\'utf-8\')
if data == \'0\':
print(\'Success to register!\')
return True
elif data == \'1\':
print(\'Failed to register, account existed!\')
return False
else:
print(\'Failed for exceptions!\')
return False
def login():
#用户登录函数
print("""
Welcome to login in!
""")
accout = input(\'Account: \')
if not re.findall(myre, accout):
print(\'Account illegal!\')
return None
password = input(\'Password: \')
if not password:
print(\'Password illegal!\')
return None
global userAccount
userAccount = accout
loginInfo = [accout, password,\'login\']
datastr = json.dumps(loginInfo)
tcpCliSock.send(datastr.encode(\'utf-8\'))
data = tcpCliSock.recv(BUFSIZE)
if data == \'0\':
print(