소켓을 수락하고 3 개의 값을 반환하는 함수를 작성 중입니다. 0 = 정말 나쁜 오류는 종료 스레드가 발생합니다. 1 = 연결과 대화합니다. = 뭔가 일이 일어나고 다른 수락을합니다 (시간 초과).소켓 수락으로 인해 예외가 발생하는 경우 그 이유를 어떻게 알 수 있습니까?
IOException에 throwable 객체를 반환하는 GetCause 메소드가 있음을 알 수 있습니다. 이 throwable 객체에는 throwable을 반환하는 get cause 메서드가 있습니다.이 메서드는 throwable을 반환하는 getcuase 메서드가있어 영원히 계속되는 것처럼 보이며 다른 throwable 개체를 계속 가져옵니다.
어떻게하면 예외적 인 이유를 알 수 있습니까? 나는 이유를 얻고 많은 문자열을 비교할 수 있지만 이것은 신뢰할만한 것으로 보이지 않습니다. 테드
int GetClient()
{
try {
server.setSoTimeout(5*1);
connection=server.accept();
}
catch(IOException ec)
{
System.out.println(Thread.currentThread()+":"+ec.getMessage());
return 2; // for time out or something where we can try again
// return a zero saying we must stop erra o bad
}
return 1;
}