def handle_close(self):
try:
delete_set = self.getgrouplist()
for multicast_addr in delete_set:
self.setsockopt(socket.SOL_IP, socket.IP_DROP_MEMBERSHIP,
socket.inet_aton(multicast_addr) + socket.inet_aton('0.0.0.0'))
if self.callback_obj is not None:
self.callback_obj.on_leave(self, multicast_addr)
with self.lock:
self.multicastSet = Set([])
except Exception as e:
print e
print 'asyncUdp close called'
asyncore.dispatcher.close(self)
AsyncController.instance().discard(self)
try:
if self.callback_obj is not None:
self.callback_obj.on_stopped(self)
except Exception as e:
print e
traceback.print_exc()
# noinspection PyMethodOverriding
评论列表
文章目录