Python并发编程-IO模型-IO多路复用实现SocketServer,-iosocketserver,Server.pyi


技术分享图片

Server.py
import selectimport socketsk = socket.socket()sk.bind(('127.0.0.1',8080))sk.setblocking(False)sk.listen()read_lst = [sk] #select监听谁就放入listwhile True: #[sk,conn]    r_lst,w_lst,x_lsx = select.select(read_lst,[],[])    # print('*******',r_lst)    # print(sk)    for i in r_lst:        if i is sk:            conn,addr = i.accept()            # print(conn)            read_lst.append(conn)        else:            ret = i.recv(1024)            if ret == b'':                i.close()                read_lst.remove(i)                continue            print(ret)            i.send(b'goodbye')
client.py
import socketimport timeimport threadingdef func():    sk = socket.socket()    sk.connect(('127.0.0.1',8080))    sk.send(b'hello')    time.sleep(1)    print(sk.recv(1024))    sk.close()for i in range(20):    threading.Thread(target=func).start()

Python并发编程-IO模型-IO多路复用实现SocketServer

评论关闭