홈
지원
동일한 로컬 포트에서 TCP 연결을 닫고 열 때 발생하는 에러 60 해결 방안
동일한 로컬 포트에서 TCP 연결을 닫고 열 때 발생하는 에러 60 해결 방안
업데이트 됨 Jan 11, 2023
해당 제품
이 문서의 해결책을 실행할 수 있는 제품을 보여줍니다. 이 해결책은 다른 유사한 제품 또는 어플리케이션에도 적용될 수 있습니다.
소프트웨어
LabVIEW
문의사항
RT 컨트롤러를 사용하고 있으며 특정 로컬 포트에서 TCP 연결을 여는 중입니다. 연결을 닫은 후에 즉시 동일한 로컬 포트에서 다시 열때, TCP Open Connection VI는 아래 에러가 발생합니다 :
Error 60 occurred at TCP Open Connection in MyVI.vi.
저의 TCP 코드는 아래 스니핏 그림과 같습니다.
왜 이런 일이 발생하며, 어떻게 해결할 수 있습니까?
해결책
이 문제는 TCP/IP 스택의 특정한 동작 방식으로 인하여 발생됩니다. 이 문제는 VxWorks 및 Linux RT와 같은 다른 운영체제에서도 동일하게 발생합니다. 이 이슈는 TCP TIME-WAIT 상태라고하며 TCP의 연결을 종료 한 후 약 1 분 동안 새로운 접속을 차단합니다. 이렇게 처리되는 이유는 이전 연결 상태에서 전달된 메시지가 상대방에게 전달되지 않고, 접속이 종료되었을 경우 새 연결에서 이 메시지를 받지 않도록 처리하기 위함입니다.
일반적으로, 운영 체제가 로컬 포트 번호를 선택하도록하는 것이 가장 좋습니다. 특정 로컬 포트를 사용해야 하는 경우, 연결을 닫은 후 다시 열어서 TIME-WAIT 상태가 완료 될 때까지 몇 분 정도 기다려야합니다. Linux RT 대상 (cRIO-906x 및 903x)의 경우 동일한 TCP 포트를 즉시 재사용해야하는 경우 다음 토큰을 추가하여
lvrt.conf
파일을 수정할 수 있습니다:
SocketSetReuseAddr = True
lvrt.conf
파일은
/files/etc/natinst/share/
폴더에 저장됩니다.
관련 링크
Why Do I Receive Error 60 from Create Listener for 60 Seconds?
Reconnectable TCP Server Connection
LabVIEW 2017 Help: TCP VI and Functions
기타 지원 옵션
NI 커뮤니티에 문의
토론 포럼에서 다른 사용자와 공동 작업
솔루션 찾기 NI 커뮤니티 검색
엔지니어의 지원 요청
유효한 서비스 계약이 필요할 수 있으며 지원 옵션은 국가마다 다릅니다.
서비스 요청 열기
지원 서비스 구매 또는 갱신
Was this information helpful?
Helpful
Not Helpful