Python通过socketserver处理多个链接

  

插座只能处理一个客户端连接,如果需要并发处理多个链接则需要使用socketserver、下面是代码示例以及注释

  

服务器端         进口socketserver   #之前的套接字只能同时处理一个客户端,当需要并发处理客户发送的信息是需要使用到socketserver、下面创建一个类,继承socketserver其对应实例就有并发能力   类My_Tcp_Handler (socketserver.BaseRequestHandler):   #下面的处理程序是自己定义的服务器与客户端交互的过程,所有交互过程都在此方法内部实现。方法名处理是固定的   def处理(自我):   而真正的:   试一试:   #下面将收到的数据打印并且大写后发回给客户端   自我。data=https://www.yisu.com/zixun/self.request.recv (1024)   print (self.data.decode(编码=" utf - 8 "))   自我。send_data=https://www.yisu.com/zixun/self.data.decode(编码=皍tf - 8”) .upper () .encode(编码=皍tf - 8”)   self.request.sendall (self.send_data)   除了ConnectionResetError e:   打印(“一个客户端关闭了连接”)   打破      #实例化socketserver   My_server=socketserver.ThreadingTCPServer((“0.0.0.0”, 8888年),My_Tcp_Handler) # ThreadingTCPServer是使用多线程,ForkingTCPServer是使用多进程处理并发   #启动实例   My_server.serve_forever ()      

下面是客户机端

        进口套接字   客户=socket.socket ()   client.connect ((127.0.0.1, 8888))   而真正的:   味精=输入()   如果len(味精)==0:   继续   client.send (msg.encode(编码=" utf - 8 ")) #如果发送中文需要对其进行编码,接收也需要解码;英文前面直接加b指定类型   client_rec=client.recv (1024) .decode(编码=皍tf - 8”)   打印(“client_rec:“client_rec)   client.close ()      

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

Python通过socketserver处理多个链接