socketserver实现并发(Python)
socketserver实现并发原理:给每一个前来链接的客户端开启一个线程执行通信。也就是给每一个连接“配备”了一个管家。
下面用一个简单的示例来演示socketserver实现并发(一个服务端,两个客户端):
服务器端:
1 # Author : Kelvin 2 # Date : 2019/2/3 21:51 3 import socketserver 4 from socket import * 5 6 ip_conf = ("127.0.0.1", 8888) 7 buffer_capcity = 1024 8 9 10 class Mysocket(socketserver.BaseRequestHandler): 11 def handle(self): 12 print(self.request) 13 print(self.client_address) 14 15 while True: 16 data = self.request.recv(buffer_capcity).decode("utf8") 17 print("服务器收到信息:%s" % data) 18 self.request.send("服务器收到信息!".encode("utf8")) 19 20 21 if __name__ == "__main__": 22 s = socketserver.ThreadingTCPServer(ip_conf, Mysocket) 23 s.serve_forever()
客户端一:
1 # Author : Kelvin 2 # Date : 2019/2/3 21:51 3 from socket import * 4 5 ip_conf = ("127.0.0.1", 8888) 6 buffer_capcity = 1024 7 client = socket(AF_INET, SOCK_STREAM) 8 client.connect(ip_conf) 9 while True: 10 client.send(input("客户端1输入:").encode("utf8")) 11 data = client.recv(buffer_capcity).decode("utf8") 12 print(data)
客户端二:
1 # Author : Kelvin 2 # Date : 2019/2/3 21:51 3 from socket import * 4 5 ip_conf = ("127.0.0.1", 8888) 6 buffer_capcity = 1024 7 client = socket(AF_INET, SOCK_STREAM) 8 client.connect(ip_conf) 9 while True: 10 client.send(input("客户端2输入:").encode("utf8")) 11 data = client.recv(buffer_capcity).decode("utf8") 12 print(data)
打印结果:
服务器输出:
客户端一:
客户端二:
分类:
[编程语言] Python
, [后端技术栈] 并发编程
标签:
Python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~