上来就遇到个大问题,一段代码看不明白
-
r, w, e = _eintr_retry(select.select, [self], [], [],
-
poll_interval)
-
def _eintr_retry(func, *args):
-
"""restart a system call interrupted by EINTR"""
-
while True:
-
try:
-
return func(*args)
-
except (OSError, select.error) as e:
-
if e.args[0] != errno.EINTR:
-
raise
平时select不都是穿socket进去的么,这传个self,select是怎么识别的
可以识别的话,self的类肯定有个特别的函数能让select用,翻select.py没用,还好网上找到了答案
http://blog.chinaunix.net/uid-20135217-id-3291038.html
“select函数的参数是3个列表,包含整数文件描述符,或者带有可返回文件描述符的fileno()方法对象。”
果然类里有fileno()函数返回socket.fileno()
待续
补充...这个模块没待续了,太简单轻量了完全没什么用
有需要学习twisted模块.....
顺便保底转载个
http://blog.sina.com.cn/s/blog_704b6af70100py9n.html
阅读(1838) | 评论(0) | 转发(0) |