极简,无任何依赖,解决了原来项目里面接收TCP数据的粘包问题。
#!/usr/bin/python3
#coding=utf-8
#from socketserver import BaseRequestHandler, TCPServer # 单线程 同时只能处理一个客户端
#from socketserver import BaseRequestHandler, ThreadingTCPServer # 多线程 可处理多个客户端的并发连接
from socketserver import BaseRequestHandler, ForkingTCPServer # 多进程 可处理多个客户端的并发连接
class EchoHandler(BaseRequestHandler):
def handle(self):
while True:
#接收数据
msg = self.request.recv(8192)
if not msg:
break
#解码数据
recv_text = msg.decode('utf8')
#回发数据
self.request.send(msg)
if __name__ == '__main__':
#serv = ForkingTCPServer(('', 8008), EchoHandler) #
#serv = ThreadingTCPServer (('', 8008), EchoHandler) #
serv = ForkingTCPServer(('', 8008), EchoHandler) #绑定服务端口,【任何IP】
serv.serve_forever()#启动监听服务