码迷,mamicode.com
首页 > 其他好文 > 详细

io多路复用--本质

时间:2018-03-20 19:46:21      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:block   www.   body   1.0   append   多路复用   多个   返回   socket   

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多路复用--本质

标签:block   www.   body   1.0   append   多路复用   多个   返回   socket   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!