博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 并发编程 基于gevent模块实现并发的套接字通信
阅读量:5262 次
发布时间:2019-06-14

本文共 1220 字,大约阅读时间需要 4 分钟。

 

 

之前线程池是通过操作系统切换线程,现在是程序自己控制,比操作系统切换效率要高

 

服务端

from gevent import monkey;monkey.patch_all()import geventfrom socket import *def communicate(conn):    ''' 通信功能 '''    while True:        try:            data = conn.recv(1024)            if not data:break            conn.send(data.upper())        except ConnectionResetError:            break    conn.close()def server(ip,port):    ''' 负责建立连接 accept'''    server = socket(AF_INET, SOCK_STREAM)    server.bind((ip,port))    server.listen(5)    while True:        conn,addr = server.accept()        c = gevent.spawn(communicate,conn)    server.close()if __name__ == "__main__":    g = gevent.spawn(server,'127.0.0.1', 8080)    g.join()

 

客户端给服务端发送500个并发量,会看到一直不停的收消息

from socket import *from threading import Threadfrom threading import current_threaddef client():    client = socket(AF_INET, SOCK_STREAM)    client.connect(('127.0.0.1', 8080))    while True:        client.send(("%s say helo" % current_thread().getName()).encode("utf-8"))        data = client.recv(1024)        print(data.decode("utf-8"))    client.close()if __name__ == "__main__":    for i in range(500):        t = Thread(target=client,)        t.start()

 

转载于:https://www.cnblogs.com/mingerlcm/p/11179013.html

你可能感兴趣的文章
20145305 《信息安全系统设计基础》课程总结
查看>>
myeclipse 配置 tomcat7
查看>>
Linux中编译或安装程序时提示No such file or directory
查看>>
Java解析Excel之POI(二):解决 xls 和 xlsx 两种格式解析时的差异统一处理
查看>>
Go语言表组测试示例
查看>>
适合我胃口的angular.js学习资料
查看>>
过年过年了,篮球球和电影群都过年总结啦啦啦~~~~~
查看>>
C#异常处理
查看>>
《实战Angular从零到一》pdf
查看>>
C#属性
查看>>
利用js 获取ip和地址
查看>>
寻找图中"通用的汇"(Universal sink)
查看>>
Java并发程序入门
查看>>
AABB包围盒 OBB包围盒 包围球的比较
查看>>
博客园主题
查看>>
264. Ugly Number II
查看>>
CodeForce 677C - Vanya and Label
查看>>
【转】目前最常见的”无线通信(数据)传输技术“有哪些?
查看>>
【JZOJ5231】【NOIP2017模拟A组模拟8.5】序列问题 线段树
查看>>
dubbo(provider,consumer)点到点直连配置
查看>>