检测TCP连接何时丢失

时间:2016-10-14 08:32:27

标签: android sockets tcp

我想知道TCP连接何时丢失(未关闭),例如服务器意外关闭时。所以我用outputStream.write(s)发送数据;当连接丢失并且我m trying send data it should throws SocketException`时。但它只在第二次发送数据后抛出。为什么会这样。

  void send_socket(){
            try{

                outputStream = socket.getOutputStream();
                outputStream.write(MSG.getBytes());

            }  catch (SocketException e){
                Log.e(TAG, "connection closed");
            }
            catch (IOException e){
                Log.e(TAG, "error 3 - ", e);
            }
    }

1 个答案:

答案 0 :(得分:0)

检测断开连接或拉入TCP的最佳形式是等待IoException发生并采取适当的操作。 TCP可以为您提供便利的唯一方法就是当另一个发送FIN时最终返回-1并告诉用户该连接已被EOFException关闭,我相信你现在已经发现了。

编辑:感谢您的纠正。我忘了更清楚一点。