我有一个异步客户端,它与用 C 编写的服务器交互。我需要能够检测服务器何时关闭连接并继续重新尝试连接到它,直到它再次可用。这是我的代码:这是我的异步客户端,我转而启动另一个线程模块(ReceiverBoard)以在单独的线程中运行。DETClient 类(asyncore.dispatcher):
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 开发),直到建立连接。