我目前正在重新编写一些使用python的select.select()
方法的代码,但这些代码只返回套接字对象,我必须在其中手动将该套接字与放在__init__
下的类中的套接字相匹配。它的伪代码基本上是[classobject for classobject in classList if SocketFromSelection == class.socketobject][0]
(我经常使用它)。在
我在python文档中发现,select.select()
“你也可以自己定义一个包装类,只要它有一个适当的fileno()方法(它真正返回一个文件描述符,而不仅仅是一个随机整数)。”
我的问题是,如何在类中附加一个fileno()方法,以便将这些类的序列传递到select.select()
中,以便它返回类而不仅仅是套接字?另外,这会在windows上运行吗?如果没有,是否有更好的方法将套接字与类列表中的类中的套接字相匹配?在
从你的问题中包含的代码来看,听起来你有一个类,其中包含一个套接字(作为
socketobject
属性)。在这种情况下,您可以通过在包装上代理套接字的fileno
方法使包装对象select
可用:现在您可以直接将
SocketWrapper
的实例传递给select
,而不是传递套接字,然后在以后必须对哪个套接字与哪个实例对应进行排序。在相关问题 更多 >
编程相关推荐