From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

취소
다음에 대한 결과 표시 
다음에 대한 검색 
다음을 의미합니까? 

TCP통신 서버쪽 다운시 에러 문의

안녕하세요 TCP 통신 클라이언트로 사용중입니다.

그런데 서버 PC가 갑자기 다운되버려서 꺼졌는데 제쪽에서는 아직 접속중인 상태로 나와서

서버 PC를 재부팅하여 켜도 제 쪽의 통신을 초기화 하지 않는 이상 통신이 안되네요.

코드는 아래와같이 작성하여 타임아웃을 제외한 에러 발생시는 통신을 자동으로 재접속 하도록 상태머신 구성했습니다.

제생각에는 서버가 원인모를 이유로 다운되면 에러코드가 발생이 안되는거 같은데 맞나요?

캡처.PNG

0 포인트
1/4 메시지
2,393 조회수

TCP 통신의 예제를 봤을 때는 통신이 중단 되었을 때는 에러가 발생하도록 되어 있는 것 같습니다. 

아래는 LabVIEW 기본예제에 포함되어 있는 예제 입니다.

에러 처리 부분을 보니깐, 에러 코드 62, 64, 66이 발생 하면 "통신이 끊어졌다"라는 팝업을 띄우도록 되어 있는데요. 

이 에러 코드들이 통신 이상이 발생하면 위의 코드들이 발생 할 것 같습니다. 

기본 예제에 Client와 Server가 모두 있어서 테스트 해보시면 도움이 될 것 같네요.

Client 예제.PNG

Error 62.PNGError 64.PNGError 66.PNG

0 포인트
2/4 메시지
2,353 조회수

답변 감사드립니다.

하지만 저의 경우에는 말씀드렸다시피 서버쪽 PC가 다운되는 상황에서는

클라이언트쪽에는 에러가 발생하지 않습니다. 이게 해결이안되네요

코드만 나오면 참 쉬울텐데

0 포인트
3/4 메시지
2,350 조회수

저도 전에 서버가 강제종료될때 서버의 연결 해제 상태를 클라이언트에서 못받는경우를 봤었습니다.

 

랩뷰의 강제종료버튼을 사용한 테스트로는 재현이 안되지만 실제로 그런상황이 발생하곤합니다.

 

전 당시에 그냥 타임아웃으로 상태를 확인했었습니다.

 

수신받으시는 양식은 모르겠습니다만, 타임아웃이 정 어려우시면

 

서버에서 항상 보내는 값을 주고 클라이언트측에서 수신되는 문자열이 빈문자열이면 종료되도록 처리하셔도 괜찮지않나 싶습니다.

0 포인트
4/4 메시지
2,306 조회수