时间: 2020-11-25|55次围观|0 条评论

select服务端代码

from socket import * from select import * s = socket(AF_INET, SOCK_STREAM) s.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1) s.bind(('localhost', 8888)) s.listen(4) rl = [s] while True: rs, ws, xs = select(rl,rl,rl) print('yyyyy') c,addr = rs[0].accept() print('xxxxx') # rl.append(c) # print(c.recv(1024))

s.send()在select中所引起的IO就绪态是属于连接套接字的,而不再是listen套接字的IO触发
所以在没有将连接套接字放入监测列表的情况下,select不会知道客户端要send()
打印结果
yyyyy
xxxxx
打印结果
1
2

客户端代码

from socket import * s = socket() s.connect(('localhost', 8888)) print(1) s.send(b'qweqwe') print(2)

转载于:https://www.cnblogs.com/ravener/p/9625890.html

原文链接:https://blog.csdn.net/weixin_30342827/article/details/98243285

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自起风了,原文地址《注意在select中区分监听套接字与链接套接字
   

还没有人抢沙发呢~