Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java套接字读取错误异常与返回代码_Java_Sockets_Exception_Networking_Connection - Fatal编程技术网

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

Java套接字读取错误异常与返回代码,java,sockets,exception,networking,connection,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 w

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

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


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

正如@PeterLawrey正确地提到的那样

如果.read()中的
返回-1,则表示到达流的末尾

流/通信故障不可用时的异常取决于引发的异常类型


正如@PeterLawrey正确地提到的

如果.read()中的
返回-1,则表示到达流的末尾

流/通信故障不可用时的异常取决于引发的异常类型


这取决于断开连接的方式。如果流完全关闭,您将得到-1,但是如果连接超时,您将得到一个异常;异常表示流可能以某种方式被截断。这取决于连接的断开方式。如果流完全关闭,您将得到-1,但是如果连接超时,您将得到一个异常;异常表示流可能以某种方式被截断。