socket服务端要同时连接多个客户端,只能排队连接是不符合实际开发需求的,要实现scoket模块的并发就需要socketserver模块。
#socketserver服务端.py
import socketserver
class MyServer(socketserver.BaseRequestHandler):
def handle(self):
while 1:
from_client_data = self.request.recv(1024)
print(from_client_data.decode("utf8"))
to_client_data = input("输入要发送的内容>>>").encode("utf8")
self.request.send(to_client_data)
if __name__ == "__main__":
server = socketserver.ThreadingTCPServer(("127.0.0.1", 8001), MyServer)
server.serve_forever()
#socketserver客户端.py
import socket
phone = socket.socket()
phone.connect(("127.0.0.1", 8001))
while 1:
to_server_data = input("请输入要发送的数据>>>").encode("utf8")
if to_server_data.decode("utf8").upper() == "Q":
print("已主动退出")
break
phone.send(to_server_data)
from_server_data = phone.recv(1024)
print(from_server_data.decode("utf8"))