首頁  >  問答  >  主體

Java 判断socket的连接状态

1.android 设备在未有设备连接的时候,怎么判断socket是未连接,如果使用API提供的isConnected()的方法会报一个空指针

2.当socket连接的设备突然断开怎么实时获取socket的状态

3在进行socket通信的时候会出现可以发送数据,却收不到数据,如果处理

伊谢尔伦伊谢尔伦2765 天前611

全部回覆(1)我來回復

  • 巴扎黑

    巴扎黑2017-04-17 17:39:56

    1. 你的裝置是在開啟服務端嗎? ,如果是,那麼ServerSocket.accept()方法是阻塞的,你的判断代码不要写在这个方法成功前就创建好的其他线程内,要与ServerSocket.accept()在同一线程或者在 ServerSocket.accept() 执行后新开的线程内,以保证判断方法也会被阻塞影响。 ——另外判断连接状态用Socket.isClosed()

    2. 沒有什麼方法可以真的做到完全的實時,你可以看一下 心跳機制 的資料,一般都是通過這類不間斷發送簡單數據的方式判斷遠端是否在線。

    3. 和上面的心跳機制一樣,你可以要求在資料發送成功後接收端再給你回傳一個結果標記。

    回覆
    0
  • 取消回覆