欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

python-IO多路复用,select模块

发布时间:2025/3/15 python 32 豆豆
生活随笔 收集整理的这篇文章主要介绍了 python-IO多路复用,select模块 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

触发机制:1)水平触发;2)边缘触发

IO多路复用单线程实现并发,实现模块:1)select(效率最低); 2)poll;3)epoll(最好,nginx的实现)。linux下有这3种模块,windows下只有select模块

IO多路复用的好处:同时可以监听多个连接

IO多路复用的select模块触发机制:水平触发

PS:异步:整个过程中,不能有一丝的阻塞

client端:

import socketsk = socket.socket() sk.connect(('127.0.0.1', 8801))while True:inp = input(">>>>")sk.sendall(bytes(inp, "utf8"))data = sk.recv(1024)print(str(data, 'utf8'))

server端:

import socket import select sk=socket.socket() sk.bind(("127.0.0.1",8801)) sk.listen(5) inputs=[sk,] while True:r,w,e=select.select(inputs,[],[],5)for obj in r:#[sk,]if obj==sk:conn,add=obj.accept()print(conn)inputs.append(conn)else:data_byte=obj.recv(1024)print(str(data_byte,'utf8'))inp=input('回答%s号客户>>>'%inputs.index(obj))obj.sendall(bytes(inp,'utf8'))print('>>',r)

 

转载于:https://www.cnblogs.com/benchdog/p/9189647.html

与50位技术专家面对面20年技术见证,附赠技术全景图

总结

以上是生活随笔为你收集整理的python-IO多路复用,select模块的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。