python之socketserver实现并发
python之socketserver实现并发
服务端
import socketserver #socketserver模块是用来实现并发 # 我们自己的类里一定要继承socketserver.BaseRequestHandler方法 # 里面需要一个handle方法 # 每当客户端来连接时,就会创建一个实例,实例与实例之间独立 # 实例包含 # self.request:conn 作用:服务端收发信息的对象 # self.client_address:addr 作用:客户端的ip地址 class Myserver(socketserver.BaseRequestHandler): def handle(self): print("conn is:"+str(self.request)) print("conn is:" + str(self.client_address)) #通讯循环 while True: #收信息 try: data = self.request.recv(1024).decode('utf-8') if data: print("客户端发过来的信息:" + data) # 发信息 self.request.sendall(data.upper().encode('utf-8')) except Exception as e: continue if __name__=="__main__": #链接循环 #这个方法需要两个参数,((ip,port),Myserver) s=socketserver.ThreadingTCPServer(('127.0.0.1',8080),Myserver) #永远运行 s.serve_forever() #socketserver.ThreadingTCPServer()方法循环不端的接收新的连接 #handle()方法与客户端循环进行通讯
客户端
import socket def main(): ip_port = ('127.0.0.1', 8080) s2 = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s2.connect(ip_port) # 连接服务端 while 1: data1 = input("-->").strip() if not data1:continue if data1 =='quit':break s2.sendall(data1.encode('utf8')) data2=s2.recv(1024) print(data2.decode("utf-8")) if __name__ == '__main__': main()
关于socketserver更多的介绍和使用,可以看一下这篇博文:
【推荐】国内首个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 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?