У меня есть клиент asyncore, который взаимодействует с сервером, написанным на C. Мне нужно уметь обнаруживать, когда сервер закрывает соединение и продолжает пытаться подключиться до тех пор, пока он не будет снова доступен. Вот код, который у меня есть: Это мой асинхронный клиент, который я запускаю, запускает другой потоковый модуль (ReceiverBoard) для запуска в отдельном потоке. класс DETClient (asyncore.dispatcher):Как восстановить соединение asyncore с сервером (решено)
buffer = ""
t = None
def __init__(self, host, port):
asyncore.dispatcher.__init__(self)
self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
self.connect((host,port))
self.host=host
self.port=port
self.t = ReceiverBoard(self)
self.t.start()
def sendCommand(self, command):
self.buffer = command
def handle_error(self):
self.t.stop()
self.close()
def handle_write(self):
sent=self.send(self.buffer.encode())
self.buffer=""
def handle_read(self):
##there is code here to parse the received message and call the appropriate
##method in the threaded module ReceiverBoard
Моя первая проблема в том, что я хотел клиента (выше), чтобы попытки подключения к серверу (разработанный в ANSI C) через гнездо, пока соединение не было сделано ,
хадж Ehsan, пожалуйста, напишите здесь ваш код и добавьте, что вы пробовали. – AliBZ
haj ali, спасибо миллион человек. Поблагодарили бы за вашу помощь. –
haj Ali, спасибо. Я случайно нашел решение. –