0

次のループを使用してソケットからデータを読み取っています

InputStream in = getInputStream();
int retCode;

try {
  while( ( retCode = in.read()) > -1) {
    // do something
  }
  logger.info( "Done reading : Code " + retCode);
} catch( IOException ioe) {
  logger.warning( "IOException while reading : " + ioe.getMessage());
}

接続が切断されることがありますが、これは予想どおりですが、結果に一貫性がありません。
例外が発生する、またはretCode ==-1

したがって、私の質問は、ソケットを読み取るときに例外とリターンコードを決定するものは何ですか?

4

2 に答える 2

3

@PeterLawreyが正しく述べたように

-1in.read()を返す場合- ストリームの終わりに到達したことを意味します。

ストリームが利用できない場合の例外/通信障害 - スローされた例外のタイプによって異なります。

もっと

于 2013-01-28T08:53:14.430 に答える