ソケットを受け取り、3つの値を返す関数を作成しています 0 =本当に悪いエラーが出口スレッドに発生しました 1 =接続に話をしています =何かが起こったら、別の受け入れ(タイムアウト)してください。ソケット受け入れによって例外が発生した場合、どうしてその理由を知ることができますか?
IOExceptionには、throwableオブジェクトを返すGetCauseメソッドがあります。 このthrowableオブジェクトには、throwableを返すget causeメソッドがあります。このメソッドは、throwableを返すgetcuaseメソッドを備えています。このメソッドは永遠に続行され、別のthrowableオブジェクトを取得し続けます。
どうすればいいのですか? 私はget理由と文字列の束を比較することができますが、これは信頼できるとは思われません。 テッド
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;
}