Java套接字读取错误异常vs返回代码

时间:2013-01-28 08:43:12

标签: java sockets exception networking connection

我使用以下循环从套接字读取数据

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

因此我的问题读取套接字时是什么决定了异常与返回代码?

1 个答案:

答案 0 :(得分:3)

正如@PeterLawrey正确提到的那样

如果in.read()返回 -1 - 表示已到达流的末尾。

异常以防万一流/通信失败 - 取决于抛出的异常类型。

More