首页 > 其他 > 详细

io多路复用--本质

时间:2018-03-20 19:28:57      阅读:209      评论:0      收藏:0      [点我收藏+]

io多路复用:用来检测多个socket对象是否有变化

socket_list = []
for i in [www.baidu.com.,.,.,.,.]
  client = socket.socket()
  client.setblocking(False)
#连接
  try:
   client.connect(("i",80)) #阻塞
  except BlockingIOError as e:
   print(e)
  socket_list.append(client)
#事件循环
while true: #(检测)
  
r,w, e = select.select(socket_list,socket_list...,0.05)
#w    [sk2,sk3], 连接成功了 
for obj in w;
obj.send(‘get /http/1.0\...‘)
#r   [sk2,sk3],可读
          如果socket中返回内容了,表示可读,要收数据了
for obj in r:
response = obj.recv()
         print(response)

总结

1.client.setblocking(false)

2,select.select()  #检测:连接成功,数据回来

 

io多路复用--本质

原文:https://www.cnblogs.com/catherine007/p/8611447.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!