python:rs, ws, es = select.select(inputs, [], []) --报错error 10022

昨晚折腾的1个多钟,直到3点多才睡,感觉自己也是热爱代码了,敲3个多钟一点也不累(其实是为了凌晨6点起来抢票回家了^_^)

练习python中select进行异步通信-防止socket。recv方法阻塞线程

rs, ws, es = select.select(inputs, [], []) --报错error 10022 

http://blog.sina.com.cn/s/blog_6ffee9410100pqdt.html这篇博客的意思是socket连接时候没有绑定端口,所以就报错。

然而我检查了下我端口是有设定了

port =65098
host = "localhost"

我这个端口查了下不会发生端口冲突,这个localhost地址会映射到127.0.0.1

基于上面情况下百度的一大堆,发现找不到,想google但是ss又过期了。只能自己想办法解决了

看了网上找的关于select的例子,发现他们通常会将serverSocket添加到inputs队列中,而我的inputs初始化是空了直接做select方法的参数。

参数都是空了,select怎么可能监听有哪个socket是可以读了,这是逻辑问题,肯定要报错了。

解决办法:将serverSocket添加到inputs队列中再调用select.select(inputs, [], [])这个语句就不会报错了

posted @ 2018-01-08 08:58  海绵般汲取  阅读(775)  评论(0编辑  收藏  举报