day10_IO多路复用

来源:互联网 发布:电脑事项提醒软件 编辑:程序博客网 时间:2024/06/08 12:04

IO多路复用使用了

select  poll  epoll方法

监听socket对象内部是否变化了

当链接或者收发消息的时候会产生变化

服务端

sk:判断是否有新的链接

conn:判断是否有新的消息,其实conn也是一个socket对象

IO多路复用代码L;

#__author__ = 'DouYunQian'
#coding=utf-8
import socket,select
s=socket.socket()
s.bind(("127.0.0.1",9999,))
s.listen(5)
inputs=[s,]
while True:
    r,w,e=select.select(inputs,[],[],1)
   
    print(len(inputs),len(r))#表示当前select监听了几个socket对象
    for i in r:
        if i==s:
            #if判断语句表示新连接的情况
            conn,addr=i.accept()
            inputs.append(conn)
            conn.send(bytes("hello",encoding="utf-8"))
            print("End")
        else:
            data=i.recv(7024)
            print(str(data,"utf-8"))




客户端

 #__author__ = 'DouYunQian'
#coding=utf-8
import socket
b=socket.socket()
b.connect(("127.0.0.1",9999))
data=b.recv(1024)
print(str(data,"utf-8"))
while True:
    inf=input(">>>>>")
b.close()



实现伪装并发功能

0 0