def __init__ (self, logger = None):
self.logger = logger
sock_class = socket.socket
a = sock_class (socket.AF_INET, socket.SOCK_STREAM)
w = sock_class (socket.AF_INET, socket.SOCK_STREAM)
try:
a.setsockopt(
socket.SOL_SOCKET, socket.SO_REUSEADDR,
a.getsockopt(socket.SOL_SOCKET,
socket.SO_REUSEADDR) | 1
)
except socket.error:
pass
# tricky: get a pair of connected sockets
a.bind (self.address)
a.listen (1)
w.setblocking (0)
try:
w.connect (self.address)
except:
pass
r, addr = a.accept()
a.close()
w.setblocking (1)
self.trigger = w
asyncore.dispatcher.__init__ (self, r)
self.lock = _thread.allocate_lock()
self.thunks = []
self._trigger_connected = 0
评论列表
文章目录