2012-05-04 3 views
1

TCP 소켓에 지속적으로 기록하는 프로그램이 있습니다. 나는 클라이언트와 서버 사이의 연결이 어떤 시간 동안 끊어지면 연결이 다시 설정 될 수 있도록하고 싶다.하드웨어 분리 후 TCP 복구 연결

지금 당장 전선 연결을 끊을 수 있으며 write() 함수가 루프하는 동안 하나의 "연결로 재설정 된 연결"오류가 표시되고 ULLONG_MAX 값이 반환됩니다. 그런 다음 와이어를 다시 연결하면 write()가 계속 "broken pipe"오류를 반환합니다. 연결을 닫고 다시 열려고 시도했지만 계속해서 "연결을 통해 연결 재설정"오류가 발생합니다.

누구나 내가 어떻게 연결을 재구성하거나 처음부터 일정 시간 (또는 무한정) 동안 계속 유지할 수 있는지 알고 있습니까?

답변

1

새 연결을 설정해야하고 클라이언트 프로그램에서만 시작할 수 있습니다. 동일한 클라이언트가 IP를 확인하거나 첫 번째 연결에서 토큰을 교환 할 수 있도록하기 위해 어떤 방법이 필요할 수 있으므로 처음 연결 및 복구를 위해 연결에서 다른 종류의 초기화를 수행 할 수 있습니다. 그 솔루션은 귀하의 계정에 프로그래밍이 필요합니다 ..

TCP가 어떤 이유로 든 유일한 선택이 아니라면, UDP 통신에 대해 생각해보십시오. 연결이 끊어지기로 결정한 부분이 남아 있기 때문입니다. 당신. 그러나 당신은 다른 많은 생각들을 돌볼 필요가 있습니다. (그러나 당신은 잃어버린 회복을 목표로하고 있기 때문에 그것은 당신의 필요에 더 가깝습니다).

3

여기에서 파일 설명자를 다시 사용할 수 없으면 처음부터 다시 시작해야합니다. 새 socket(2)을 만들고 connect(2)을 호출하십시오.