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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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 TCP套接字关闭?_Java_Sockets_Tcp - Fatal编程技术网

什么会导致Java TCP套接字关闭?

什么会导致Java TCP套接字关闭?,java,sockets,tcp,Java,Sockets,Tcp,我试图在Android中使用MQTT客户机的一个实现,并试图跟踪哪里出现了错误 具体来说,这发生在.readByte()中的in public final byte readByte()引发IOException{ int temp=in.read(); 如果(温度

我试图在Android中使用MQTT客户机的一个实现,并试图跟踪哪里出现了错误

具体来说,这发生在.readByte()中的
in

public final byte readByte()引发IOException{
int temp=in.read();
如果(温度<0){
抛出新的EOFEException();
}
返回(字节)温度;
}
看过这个异常后,当我试图从一个已关闭的套接字读取时,它似乎被触发。这似乎是一个网络错误,我找不到


我的问题是什么会导致插座关闭?我还没有排除它被程序关闭的可能性,但是在外部因素的情况下,TCP套接字关闭的通常原因是什么?可能还有其他与Android设备相关的具体原因吗?

通常导致套接字关闭的原因有:

  • 客户端关闭套接字
  • 服务器关闭套接字,可能是由于超时
  • 服务器在关闭之前或重新启动之后关闭并发出重置,从而关闭套接字
  • 防火墙会超时连接,并通过随后的重置操作有效地关闭套接字

如果没有关于您的具体症状的更多详细信息,很难说哪种症状最有可能出现。

可能有几个原因-您的代理实际上已关闭,您的网络已断开连接,您实际上关闭了流,您实际上获得了无效的EOF等等。在大多数情况下,这是一个编程关闭(意外)或网络端的一些错误。经纪人通常都很健壮。您能否检查您在
中的
是否有效,并对代理发送的内容进行日志监控?
public final byte readByte() throws IOException {
    int temp = in.read();
    if (temp < 0) {
        throw new EOFException();
    }
    return (byte) temp;
}