io分类

 

 

#select_server.py
from socket import *
from select import *

import sys

s=socket()
s.setsockopt(SOL_SOCKET,SO_REUSEADDR,1)
s.bind(('0.0.0.0',8888))
s.listen(5)

rlist=[s]
wlist=[]
xlist=[]


while True:
    print('Waiting.....')
    rs,ws,xs=select(rlist,wlist,xlist,5)
    #表示套接字准备就绪
    for r in rs:
        if r is s:
            connfd,addr=r.accept()
            print("connect from ",addr)
            #将新的套接字加入到关注列表
            rlist.append(connfd)
        else:
            try:
                data=r.recv(1024)
                if not data:
                    rlist.remove(r)
                    r.close()
                else:
                    print("Received from",r.getpeername(), 
                        ":",data.decode())
                    wlist.append(r)    
            except Exception:
                    pass    
    for w in ws:
        w.send("人生苦短".encode())
        wlist.remove(w)        
原文地址:https://www.cnblogs.com/sike8/p/11096542.html