python 基于gevent协程实现socket并发
client
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import time import socket from threading import Thread def client(): sk = socket.socket() sk.connect(( '127.0.0.1' , 9001 )) while True : sk.send(b 'hello' ) msg = sk.recv( 1024 ) print (msg) time.sleep( 0.5 ) for i in range ( 500 ): #协程 Thread(target = client).start() |
server
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | import socket print (socket.socket) # 在patch all之前打印一次 from gevent import monkey # gevent 如何检测是否能规避某个模块的io操作呢? monkey.patch_all() import socket import gevent print (socket.socket) # 在patch all之后打印一次,如果两次的结果不一样,那么就说明能够规避io操作 def func(conn): while True : msg = conn.recv( 1024 ).decode( 'utf-8' ) MSG = msg.upper() conn.send(MSG.encode( 'utf-8' )) sk = socket.socket() sk.bind(( '127.0.0.1' , 9001 )) sk.listen() while True : conn,_ = sk.accept() gevent.spawn(func,conn) # pip install -i https://pypi.tuna.tsinghua.edu.cn/simple |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· .NET 进程 stackoverflow异常后,还可以接收 TCP 连接请求吗?
· SQL Server统计信息更新会被阻塞或引起会话阻塞吗?
· 本地部署 DeepSeek:小白也能轻松搞定!
· 传国玉玺易主,ai.com竟然跳转到国产AI
· 自己如何在本地电脑从零搭建DeepSeek!手把手教学,快来看看! (建议收藏)
· 我们是如何解决abp身上的几个痛点
· 如何基于DeepSeek开展AI项目