python IO多路復用,select模組

2022-09-01 04:48:11 字數 1174 閱讀 1413

觸發機制:1)水平觸發;2)邊緣觸發

io多路復用單執行緒實現併發,實現模組:1)select(效率最低); 2)poll;3)epoll(最好,nginx的實現)。linux下有這3種模組,windows下只有select模組

io多路復用的好處:同時可以監聽多個連線

io多路復用的select模組觸發機制:水平觸發

ps:非同步:整個過程中,不能有一絲的阻塞

client端:

import

socket

sk =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)

else

: data_byte=obj.recv(1024)

print(str(data_byte,'

utf8'))

inp=input('

回答%s號客戶》

'%inputs.index(obj))

obj.sendall(bytes(inp,

'utf8'))

print('

>>

',r)

python io多路復用

用for迴圈執行多使用者訪問 sever import socket sk1 socket.socket sk1.bind 127.0.0.1 888 sk1.listen import select ipt sk1,output message dic eer while true r list,...

Python IO多路復用select模組

多路復用的分析例項 服務端 客戶端 服務端配置 from socket import import time import select server socket af inet,sock stream server.bind 127.0.0.1 8080 server.listen 5 serv...

Linux IO多路復用

一.select 函式 include include include int select int n,fd set readfds,fd set writefds,fd set exceptfds,struct timeval timeout fd clr int fd,fd set set f...