TClientSocket 및 TServerSocket을 사용하여 서버와 통신하는 경우 때때로 다음과 같은 예외를 발생시키는 서버에서 연결이 끊어 질 수 있습니다. WsaSend, acess violation 또는 Client에서 오류 발생 : Asychronious 소켓 오류.열린 연결 유지 TCP/IP
마녀는 이러한 오류를 복구하고 연결을 유지하는 가장 좋은 방법은 무엇입니까?
TClientSocket 및 TServerSocket을 사용하여 서버와 통신하는 경우 때때로 다음과 같은 예외를 발생시키는 서버에서 연결이 끊어 질 수 있습니다. WsaSend, acess violation 또는 Client에서 오류 발생 : Asychronious 소켓 오류.열린 연결 유지 TCP/IP
마녀는 이러한 오류를 복구하고 연결을 유지하는 가장 좋은 방법은 무엇입니까?
"무엇을해도 관계를 열어 두는 것"같은 것은 없습니다. 케이블이 잘 리면 어떻게 될까요? 당신이 할 수있는 최선의 방법은 중간 라우터가 당신이 여전히 그 연결을 사용하는 것에 관심이 있음을 알리고, 모든 오류를 조심스럽게 다루고, 필요한 경우 연결을 다시 설정하기 위해 일정 간격으로 하트 비트를 보내는 것입니다.
위대한 질문 ... 당신이 받고있는 것은 WSAECONNABORTED (비동기 소켓 오류 10053)입니다.
내 코드에서 어떻게 발생하지 않습니까? 음, Keepalive라는 이름이 있습니다. Keep-Alive라는 이름을주의 깊게 살펴보면, 연결을 유지하기 위해 Null 데이터를 연결 (단방향 일 수 있음)으로 보내면됩니다.
나는 TmrKeepAlive라는 이름의 Timer를 만들고, 그 간격을 5000ms (5 초), More info on KeepAlive으로 설정했다.
편집 : 당신이 당신의 자신의 킵 얼라이브 메커니즘을 작성하지 않으려면 또한, this 밖으로
가
는 내가보기 엔 인디, 소켓 구성 요소는 여전히 유지되고 있는지 확실하지 않습니다를 추천 ... – ComputerSaysNo
이 왜 변화라고 생각합니까 확인 인디에게 이걸 고칠거야? –