我使用Twisted創建TCP客戶端套接字。我需要在connectionMade方法的循環間隔中檢查連接狀態。Python - 扭曲客戶端 - 在ping迴路中檢查protocol.transport連接
from twisted.internet import reactor, protocol
class ClientProtocol(protocol.Protocol):
def connectionMade(self):
while not thread_obj.stopped.wait(10):
print ('ping')
self.transport.write(b'test') # Byte value
對於檢查連接失敗,我手動斷開我的網絡,我以後查了一些變量波紋管:
print (self.connected)
print (self.transport.connector.state)
print (self.transport.connected)
print (self.transport.reactor.running)
print (self.transport.socket._closed)
print (self.factory.protocol.connected)
print (self._writeDissconnected)
但是,任何變量值斷開我的網絡後,並沒有改變:(
我的問題是:當連接丟失時會設置哪些變量?我的意思是如何檢查連接狀態,如果斷開連接,我該如何重新連接?
''connectionMade'裏面做的while循環是什麼?它是否阻止'connectionMade'返回? – keturn
@keturn感謝您的關注,'connectionMade'內的循環用於檢查或ping連接,並在連接丟失時通知。此循環不會阻止返回。但是我打印的值在從服務器斷開連接後從未更改過。我需要知道如何檢查連接狀態,如果斷開連接,我該如何重新連接? –