Socket 客服端,怎么判断已经和服务端断开

解决方案 »

  1.   

    代码如下:String host = "";
    int port=-1;
    Socket s = new Socket(host, port);  //创建连接
    boolean b = s.isClosed();                       //这个地方判断是否已经和服务端断开 
      

  2.   

    1楼的方法可能行不通。必须与服务器端有数据交互,才能得到最新及最准确的状态。一种看似很笨、实则惟一可行的方法:向服务端发送数据,如果引发SocketException,说明已经和服务端断开
      

  3.   

    try{
    //尝试再次链接,出错就会有异常
    }catch{
    //有异常就是关闭了,端口了
    }
      

  4.   

    new Socket(host, port).isConnected() 
    public Tcp(ServerSocket serversocket){
      key_serversocket = serversocket;
    }
    private static ServerSocket key_serversocket = null;
    try
    {
      temp_serversocket = new ServerSocket(temp_port);
      key_tcp = new Tcp(temp_serversocket);
      key_tcp.start();
      is_start = true;
    }
     catch(Exception ex)
    {
       System.out.println("startServer:23-26" + ex.getMessage());
       ex.printStackTrace();
    }