"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Java Socket API를 사용하여 폐쇄 원격 연결을 안정적으로 감지하려면 어떻게해야합니까?

Java Socket API를 사용하여 폐쇄 원격 연결을 안정적으로 감지하려면 어떻게해야합니까?

2025-03-25에 게시되었습니다
검색:153

How Can I Reliably Detect Closed Remote Connections Using the Java Socket API?

연결 상태를 정확하게 결정하려면 소켓과 능동적으로 상호 작용해야합니다. 다음은 다음과 같습니다.

데이터 교환 :

데이터를 출력 스트림에 쓰려고 시도하고 닫힌 연결을 표시 할 수있는 예외를 캡처합니다. 그러나이 접근법은 지속적으로 불필요한 트래픽을 보내고 이상적이지 않습니다.

입력/출력 차단 :
    연결이 순서대로 닫히면 readline () 또는 read ()와 같은 작업을 차단하면 예측 가능한 값 (-1 또는 null)을 반환합니다. 불행히도, 연결이 갑자기 삭제되면이 메소드가시기 ​​적절하지 않을 수 있습니다.
  1. 읽기 시간 초과 :
  2. 읽기 시간 초과 구성은 비활성 연결을 감지하는 데 도움이 될 수 있습니다. 데이터를 수신하기 전에 시간 초과가 만료되면 연결이 손실 될 수 있습니다.
  3. 잘못된 선택키 :
  4. Java 7 이상에서 OP_READ와 함께 SELECT ()를 사용하면 관련 selectionKey가 무효가 될 때 닫힌 연결을 감지 할 수 있습니다. 그러나이 동작은 플랫폼 및 JRE 버전에 따라 다를 수 있습니다.
  5. 이 메소드는 원격 피어가 올바른 연결 클로저 에티켓을 따르는 경우에만 폐쇄 연결을 즉시 감지 할 것임을 기억하십시오. 그렇지 않으면 연결이 반 집단 상태로 들어가서 탐지가 더 어려워 질 수 있습니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3