Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.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/2/cmake/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 SocketException,连接由对等方重置。心跳服务器时的奇怪行为_Java_Android_Socketexception_Heartbeat - Fatal编程技术网

Java SocketException,连接由对等方重置。心跳服务器时的奇怪行为

Java SocketException,连接由对等方重置。心跳服务器时的奇怪行为,java,android,socketexception,heartbeat,Java,Android,Socketexception,Heartbeat,在客户端服务器android应用程序上工作。客户端正在轮询bufferedinputstream(in)以获取服务器消息,同时还重复检查服务器是否可访问,以便在服务器脱机时立即终止 try { while (true) { if (MainActivity.in.available() > 0) { message = MainActivity.readInput(); break; } Thread.sleep(100); } }

在客户端服务器android应用程序上工作。客户端正在轮询
bufferedinputstream(in)
以获取服务器消息,同时还重复检查服务器是否可访问,以便在服务器脱机时立即终止

try {
while (true) {
    if (MainActivity.in.available() > 0) {
        message = MainActivity.readInput();
        break;
    }
    Thread.sleep(100);
}
} catch (IOException e) {Log.e("myoutput", e.toString()); serverOffline = true; } //server probably offline?
catch (InterruptedException e2) {}
在我的一台测试设备(安卓2.2)上,这就像我想的那样,只要我关闭服务器,
IOException
就会被触发。尽管在我的第二台测试设备(安卓4.3)上,
IOException
没有被触发(符合API 8)。但我开始认为这不是一个设备问题,因为我尝试在模拟器中运行API8和API18,但它没有触发

有什么想法吗


我可能没有提供所有必要的信息来获得任何帮助,请让我知道,如果是这样,我会提供

如果远程服务器关闭,in.available可能会得到-1,那么代码将进入无限循环。您可以尝试将in.available值打印到日志。我检查了in.available是否得到-1,否