所以我有一个脚本可以做到这一点。(请注意,这不是实际的脚本,但为了简单起见,它是包含错误的最简版本)
import select
rmask = select.POLLIN|select.POLLERR|select.POLLHUP <--- ERROR
smask = select.POLLOUT|select.POLLIN|select.POLLERR|select.POLLHUP <--- ERROR
class PollSocket(SelectSocket):
def __init__(self, timer):
super().__init__(timer)
self.pollobj = select.poll()
self.pollobj.register(self.sock, smask)
def poll(self):
flags = []
if self.sending:
self.pollobj.register(self.sock, smask)
self.sending = False
else:
self.pollobj.register(self.sock, rmask)
try:
poll = self.pollobj.poll(self.timer.get_timeout())
except select.error as e:
print(str(e))
poll = []
if poll:
poll = poll[0][1]
if poll&select.POLLERR: flags.append('SOCKET_ERR') <--- ERROR
if poll&select.POLLHUP: flags.append('SOCKET_HUP') <--- ERROR
if poll&select.POLLIN: flags.append('SOCKET_RECV') <--- ERROR
if poll&select.POLLOUT: flags.append('SOCKET_SEND') <--- ERROR
return flags
def reset(self):
self.pollobj.unregister(self.sock)
self.sock.close()
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.sock.setblocking(0)
self.pollobj.register(self.sock)
我得到了这个错误。在
r掩码=选择.POLLIN|选择.POLLERR|选择.POLLHUP在
AttributeError:“module”对象没有属性“POLLIN”
我尝试过从select导入*来导入select中的所有内容,但也失败了。在
我想知道如何使用Windows系统访问select中的常量。在
如果您需要的话,这里有一个指向selectlib页面的链接。 https://docs.python.org/2/library/select.html
请参阅第16.1.2节
目前没有回答
相关问题 更多 >
编程相关推荐