Lazarus와 함께 Synapse 라이브러리를 사용하고 있는데 두 개의 서로 다른 IP 주소간에 TCPBlockSocket
연결을 전환하려고합니다. 그때와 첫 번째 IP 주소에 연결Lazarus에서 Synapse를 사용하여 연결을 닫은 다음 다시 엽니 다.
mySocket:=TTCPBlockSocket.Create
:
내가 가진 소켓 연결을 만들
mySocket.Connect(firstIPaddress,portNumber);
내가 두 번째 IP 주소로 전환하려고하면이 잘 작동하지만,
mySocket.Connect(secondIPaddress,portNumber);
mySocket.SendString()
과 함께 보내는 데이터는 여전히으로 전송됩니다..
나는 .Destroy
는 mySocket
을 보내고 그것을 다시하지만 mySocket
가 할당되어있는 경우 내가 확인하고는 TCPBlockSocket
개체를 다시 전에 .Destory
을 할 경우 (충돌을 얻을 시도 -.하지만 어쨌든 심각한 조금 보인다
인가 거기에 다른 IP 주소로 종료 TCPBlockSocket
를 다시 연결?
그리고 거기있는 TCPBLockSocket
활성 및 작업 연결이 있는지 테스트 할 수있는 쉬운 방법을 다음 분리 할 수있는 올바른 방법을?
내가 http://stackoverflow.com/questions/13045943/delphi를 살펴 했어 -
(내 의견에 따라, OP에 열린 연결이 계속 열려 있지만 작동하는지 확인 여전히 문제) 위의 두 번째 질문에 대해'-synapse-how-to-check-if-i-am-still-connected '가 아닌'(mySocket.Socket = INVALID_SOCKET) 또는 ((mySocket.WaitingData = 0) 및 mySocket.CanRead (0)) '좋은 연결을 가지고 있더라도 항상 false를 반환합니다 ... –
추가 조사 후에 매번 false를 반환하고 호출이 false를 반환하도록하는'.CanRead (0) 연결은 양호하지만. –