나는 소켓을 통해 ObjectOutputStream
에 연결된 을 가지고 있으며, ObjectInputStream.readObject()
을 100ms 동안 차단하도록 Socket.setSoTimeout()
을 사용 해왔다. 내가 이것을 시작한 이래로 readObject()
을 호출하는 동안 StreamCorruptedError
을 많이 보았습니다. 타임 아웃이 원인이 될 수 있습니까?ObjectInputStream.readObject()에 대한 시간 초과 설정이 안전합니까?
3
A
답변
5
이 함수를 통해 끊임없이 새로운 데이터를 얻는 스레드가 있지만 부울을 false로 설정하여 중지 할 수 있기를 원합니다. 스레드는
당신은 그것이 InterruptedException
를 던져, 또는이 경우 InterruptedIOException
에 있도록 Thread.interrupt()를 사용하여 폴링에게 부울을 유지해야하고 그것은 readObject에 의해 차단 된 것 수없는 경우. 예외를 삼가 지 않도록하십시오!
+0
감사합니다. - InterruptedIOException에 대해 몰랐습니다. 이제 잘 작동합니다! –
3
타임 아웃을 스트림 읽기에서 발생할 수있는 일반적인 지연보다 짧게 설정하면 스트림이 여전히 적절하게 활성화되어있을 때 타임 아웃이 유효하다고 생각할 수 있습니다.
100ms는 오랜 시간이 걸릴 것으로 보이지만 디스크 또는 네트워크 트래픽이 관련된 경우에는 그렇지 않습니다. 어리석은 일에 시간 초과를 시도하십시오.
관련 문제
- 1. fread에 대한 시간 초과
- 2. 시간 초과
- 3. xapool 연결 시간 초과
- 4. stream_socket_client 시간 초과
- 5. 회원 시간 초과 및 세션 시간 초과
- 6. ASP.Net AJAX 시간 초과 요청이 시간 초과 기간보다 오래 완료되었지만
- 7. SQL Server의 시간 초과 설정
- 8. getchar()에 대한 시간 초과 추가
- 9. HistoryRecord에 대한 활동 유휴 시간 초과?
- 10. 임베디드 루아에 대한 시간 초과 설정
- 11. pcap에 대한 읽기 시간 초과 값이
- 12. IE에 대한 Ping - 요청 시간 초과
- 13. UI 스레드의 메서드에 대한 시간 초과
- 14. 1 시간 초과 된 파일에 대한 모니터
- 15. 동기식 NSURLConnection으로 시간 초과
- 16. nginx php5-fpm 업스트림 시간 초과 (110 : 연결 시간 초과)
- 17. HTTP 게이트웨이 시간 초과
- 18. NSURLConnection 시간 초과?
- 19. 호버 설정 시간 초과
- 20. C# DateTime,이 방법의 지역 설정이 안전합니까?
- 21. asp.net의 시간 초과 작업
- 22. 세션 시간 초과
- 23. 서버가 시간 초과 됨
- 24. Clearquest 데이터베이스 시간 초과
- 25. set_time_limit() 시간 초과
- 26. CCnet + NAnt 시간 초과
- 27. AS3 : 소켓 시간 초과
- 28. 예상 시간 초과 문제
- 29. 데이터베이스 연결 시간 초과
- 30. PageMethod 기본 시간 초과
예 ------------ –
이것은 정말 나쁜 생각처럼 들립니다. 무엇을 성취하려고합니까? 나는 거기에 해결책이있을 것이라고 확신하지만'Socket.setSoTimeout()'이 아니다. – biziclop
이 함수를 통해 끊임없이 새 데이터를 얻는 스레드가 있지만 부울을 false로 설정하여 스레드를 중지 할 수 있기를 원합니다. 쓰레드는 계속 부울을 폴링해야하고'readObject() '에 의해 차단 된 경우에는 처리 할 수 없습니다. –