def run(self):
while not self.e_stop.isSet():
self.last_sent = 0
self.state = "idle"
self.state = "connecting"
print "connecting %s" % self.dstaddr
self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
self.socket.settimeout(120)
self.socket.connect((self.dstaddr, self.dstport))
except:
self.handle_close()
self.handle_connect()
epoll = select.epoll()
epoll.register(self.socket.fileno(), select.EPOLLIN)
while self.state != "closed":
if self.e_stop.isSet():
break
events = epoll.poll(timeout=1)
for fd, ev in events:
if ev & select.EPOLLIN:
self.handle_read()
elif ev & select.EPOLLHUP:
self.handle_close()
self.handle_write()
self.handle_close()
if not self.e_stop.isSet():
time.sleep(5)
print "reconnect"
评论列表
文章目录