Concurrent network communications multiplexer -io

"""
io多路复用 select
select tcp 服务
"""
from socket import *
from select import *


s = socket () # create a socket, listening for connections
s.setsockopt (SOL_SOCKET, the SO_REUSEADDR, True)
s.bind (( '0.0.0.0', 9999))
s.listen (. 5)
RLIST = [S]

while True:
try:
rs, ws, xs = select(rlist,[], [])
except:
continue
for i in rs:
if i == s:
c, addr = i.accept()
rlist.append(c)
else:
data = i.recv(1024).decode()
if not data:
rlist.remove(i)
i.close()
else:
print(data)
i.send(b'thanks')

 


"" "
IO multiplexed implemented poll ()

"""

from select import *
from socket import *


s = socket () # Create a socket IO
s.setsockopt (SOL_SOCKET, the SO_REUSEADDR, True)
s.bind (( '0.0.0.0', 8888))
s.listen (. 5)

print ( 'monitoring io')


fdmap = {s.fileno (): s} # key-on and holding file descriptors io


p = poll () # Create a poll Objects


p.register (s, POLLIN) # attention io event


True the while:
Events = p.poll () # monitor events io, io return to ready a list of events, internal elements are (io event file character, type) tuple consisting
for fd, in Event Events:
IF fdmap [fd] == S:
C, fdmap addr = [FD] .accept ()
p.register (C, the POLLIN | POLLERR)
fdmap [c.fileno ()] = C
elif the POLLIN & Event:
Data fdmap = [FD] .recv (1024) .decode ()
IF Not Data:
p.unregister (FD)
del fdmap [FD]
the else:
Print (Data)
fdmap [FD] .send (b'ok ')

 

Guess you like

Origin www.cnblogs.com/chenlulu1122/p/11888645.html