Twisted를 사용하여 프록시 서버를 작성하고 서버 연결이 닫혔는지 확인하는 데 문제가 있습니다.Twisted로 연결이 닫혔는지 확인
는 지금, 나는이
클라이언트 < -> 프록시 < -> 서버 텔넷과
테스트는, 프록시가 성공적으로 클라이언트에서 서버로 메시지를 전달하고 다시 서버 응답을 전달 클라이언트에게. 그러나 내 문제는 클라이언트가 프록시와 서버 간의 연결을 닫는 명령을 실행하면 클라이언트와 프록시 간의 연결이 여전히 남아있는 것입니다. 여기
이다reactor.connectTCP('localhost', 1234, client_factory)
내가 dataReceived에 아마도 연결의 상태를 모니터링하고 서버가 닫을 경우에서 볼 수 있도록 할 줄에 내 코드
client_factory = protocol.ClientFactory()
client_factory.protocol = ClientTelnetProtocol
client_factory.proxy = self
try:
clientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
clientsocket.connect(('localhost', 1234))
clientsocket.close()
reactor.connectTCP('localhost', 1234, client_factory)
except Exception as err:
print(err)
self.transport.loseConnection()
의 일부() 또는 가능한 경우 서버가 프록시에 대한 연결을 닫을 때 인터럽트를 설정하고 프록시가 클라이언트에 대한 연결을 즉시 닫도록하십시오.
고마워, 정확히 무엇을하려고했는데 clientConnectionFailed 메서드를 찾을 수 없으므로 대신에 나는 값싼 작업을 사용하여 소켓을 설정하고 먼저 연결을 시도했다. 실패 할 경우 연결을 중단하십시오. –