服务端
from gevent import monkey;monkey.patch_all()
import socket
import struct, json
from gevent import spawn
def task(conn, c_add):
'''
在子线程内,实现对应客户端等待输入和数据处理
:param conn:
:return:
'''
while True:
try:
b_header = conn.recv(struct.unpack('i', conn.recv(4))[0])
header = json.loads(b_header.decode('utf-8'))
user = header['user']
msg = header['msg']
print('%s %s : %s' % (c_add, user, msg))
except ConnectionResetError:
break
except struct.error:
break
def server(IP, PORT, BACKLOG=4):
ADD = (IP, PORT)
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(ADD)
server.listen(BACKLOG)
# 等待建立链接,并且进行通信
while True:
conn, c_add = server.accept()
# 异步提交连接&#x