Python selector


import selectors

import  socket
 
sel  =  selectors.DefaultSelector()
 
def  accept(sock, mask):
     conn, addr  =  sock.accept()   # Should be ready
     print ( 'accepted' , conn,  'from' , addr)
     conn.setblocking( False )
     sel.register(conn, selectors.EVENT_READ, read)
 
def  read(conn, mask):
     data  =  conn.recv( 1000 )   # Should be ready
     if  data:
         print ( 'echoing' repr (data),  'to' , conn)
         conn.send(data)   # Hope it won't block
     else :
         print ( 'closing' , conn)
         sel.unregister(conn)
         conn.close()
 
sock  =  socket.socket()
sock.bind(( 'localhost' 10000 ))
sock.listen( 100 )
sock.setblocking( False )
sel.register(sock, selectors.EVENT_READ, accept)
 
while  True :
     events  =  sel.select()
     for  key, mask  in  events:
         callback  =  key.data
         callback(key.fileobj, mask)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM