Java 프로그램을 가지고 xot 프로토콜을 통해 서버에 연결합니다.Java에서 네트워크 시간 초과 처리
내 lib 내가 사용하는 연결 제한 시간을 처리 할 수 있지만 & recv 데이터를 보낼 때 시간 제한을 처리하는 setSoTimeout() 같은 메서드가 없습니다.
누구나이 문제에 대한 해결책을 제안 할 수 있습니다.
감사
콴
Java 프로그램을 가지고 xot 프로토콜을 통해 서버에 연결합니다.Java에서 네트워크 시간 초과 처리
내 lib 내가 사용하는 연결 제한 시간을 처리 할 수 있지만 & recv 데이터를 보낼 때 시간 제한을 처리하는 setSoTimeout() 같은 메서드가 없습니다.
누구나이 문제에 대한 해결책을 제안 할 수 있습니다.
감사
콴
하나의 옵션은 쓰기와 join(timeout)
그것을 할 수있는 스레드를 생성하는 것입니다. 마찬가지로 연결에서 읽는 것과 마찬가지입니다. 스레드가 죽는 것과는 반대로 시간 초과가 만료되면 분명히 스레드를 죽이고 (연결을 불확정 상태로 처리하십시오).
recv에도 'Socket.setSoTimeout()'이 적용되어야합니다. javadoc을 참조하십시오.
공개 공극에 setSoTimeout (INT 시간 초과)는 비 - 제로 초과, 판독 (설정이 옵션) 차단이 소켓과 연관된 의 InputStream에 호출의 SocketException
Enable/disable SO_TIMEOUT with the specified timeout, in milliseconds.
을 던진다 이 금액에 대해서만 시간. 제한 시간이 만료되면 java.net.SocketTimeoutException은 유효하지만 여전히 입니다. 이 옵션을 적용하려면 차단 작업을 입력하기 전에 을 활성화해야합니다. 제한 시간이 > 0이어야합니다. 제한 시간이 0이면 이 무한 제한 시간으로 해석됩니다.
나의 프로토콜은 xot (TCP/IP를 통한 x25)이고이 프로토콜을위한 다른 lib를 사용하고, 자바 소켓은 사용하지 않는다 (그러나 비슷하다 : D) – QuanNH
좋습니다, 감사합니다. – QuanNH
보내기/recv 시간 초과시 안전한 방법으로 스레드를 죽이는 방법은 무엇입니까? – QuanNH
어쩌면 나는 새로운 질문을 만들 것이다 : D – QuanNH