socketserver模块的模板代码
#服务端
import socketserver
"""
socketserver使用模式:
1 功能类
class MyServer(socketserver.BaseRequestHandler):
def handle(self):
pass
2 server = socketserver.ThreadingTCPServer(('127.0.0.1',8083),MyServer)
3 server.serve_forever()
"""
class MyServer(socketserver.BaseRequestHandler):
def handle(self):
"""
并发的业务逻辑
:return:
"""
print('staring...')
while True: # 通信循环
client_data = self.request.recv(1024)
if client_data=='exit':
print('客户端已经掉线...')
break
print('客户端',client_data.decode('utf-8'))
response = input('服务端>>:')
self.request.sendall(response.encode('utf-8'))
self.request.close()
server = socketserver.ThreadingTCPServer(('127.0.0.1',8070),MyServer)
# server = socketserver.ThreadingUDPServer(('127.0.0.1',8070),MyServer) #udp协议
# server = socketserver.ForkingTCPServer(('127.0.0.1',8070),MyServer) #多进程
server.serve_forever()
# 客户端
import socket
client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
client.connect(('127.0.0.1',8070))
while True:
data = input('客户端>>: ').strip()
if not data:continue
client.send(data.encode())
data = client.recv(1024)
print("客户端:",data.decode())
socketserver模块的使用-实现并发通信,简化代码
最新推荐文章于 2023-11-17 10:39:34 发布
本文提供了一个使用Python的socketserver模块创建简单TCP服务器的示例代码。该服务器能够接收客户端消息并作出响应,支持并发连接处理。代码包括服务器端与客户端两部分实现。

322

被折叠的 条评论
为什么被折叠?



