python-IO多路复用,select模块
生活随笔
收集整理的這篇文章主要介紹了
python-IO多路复用,select模块
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
觸發(fā)機制:1)水平觸發(fā);2)邊緣觸發(fā)
IO多路復用單線程實現(xiàn)并發(fā),實現(xiàn)模塊:1)select(效率最低); 2)poll;3)epoll(最好,nginx的實現(xiàn))。linux下有這3種模塊,windows下只有select模塊
IO多路復用的好處:同時可以監(jiān)聽多個連接
IO多路復用的select模塊觸發(fā)機制:水平觸發(fā)
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)?
轉(zhuǎn)載于:https://www.cnblogs.com/benchdog/p/9189647.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的python-IO多路复用,select模块的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: wget下载速度太慢,mwget多线程下
- 下一篇: 洛谷 P4430 小猴打架