Java NIO API를 사용하여 논 블로킹 IO를 수행하는 서버를 작성했습니다. 가끔은 클라이언트 응용 프로그램이 갑작스럽게 중단되고 (예를 들어 전력 손실로 인해) 서버 측에서 연결이 열린 채로있는 상황이 나타납니다.NIO - 닫힌 연결 감지
동료가 동일한 문제를 겪었으며이 문제를 감지하기 위해 회선을 통해 하트 비트를 사용한다고했지만보다 쉬운 방법이 필요하다고 생각합니다. 다른 사람이이 문제를 겪었습니까?
몇 가지 추가 정보 : 읽기/쓰기 작업을 시도 할 때 현재 서버 설계가 IOException
을 발견하면 해당 채널을 취소하고 해당 채널을 닫습니다. 이 방법은 99 %의 시간 동안 작동하는 것으로 보입니다. 나는 연결이 열린 것처럼 보이는 몇 가지 상황 만 보았습니다.
고마워요 ZZ 코더 - 그건 제가 생각한 것입니다. 나는 이것이 TCP의 기능이 아니라는 것에 놀랍니다. – Adamski
"핑 (ping)"보다는 오히려 이러한 응용 프로그램이 인간이 아닙니다. –