socketserver实现并发
Posted ipython-201806
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了socketserver实现并发相关的知识,希望对你有一定的参考价值。
一、socketserver
基于tcp,使用socketserver,可以实现一个服务端与多个客户端通信。
- 基于tcp的套接字,关键就是两个循环,一个链接循环,一个通信循环
- socketserver模块中分为两大类:server类(解决链接问题)和request类(解决通信问题)
完整的socketserver代码示例:
服务端:
import socketserver class Myserver(socketserver.BaseRequestHandler): def handle(self): while 1: from_client_msg = self.request.recv(1024) print(from_client_msg.decode("utf-8")) server_msg = input("服务端>>>") self.request.send(server_msg.encode("utf-8")) if __name__ == ‘__main__‘: ip_port = ("127.0.0.1", 8001) server = socketserver.ThreadingTCPServer(ip_port, Myserver) server.serve_forever()
客户端:
import socket client = socket.socket() client.connect(("127.0.0.1", 8001)) while 1: client_data = input("客户端>>>") client.send(client_data.encode("utf-8")) from_server_msg = client.recv(1024) print(from_server_msg.decode("utf-8"))
此时即可在一个服务端下,运行多次客户端程序,实现同时与服务端通信。
二、socketserver源码分析
以上是关于socketserver实现并发的主要内容,如果未能解决你的问题,请参考以下文章