2016-03-15 122 views
0

我試圖找出是否一個Android IO Socket當前連接,下面(socket.connected)只是似乎告訴我是否已連接到一些套接字點 - 不是它目前是否仍然連接。如何知道socket.Io是否連接android

+0

郵政編碼可以從您的代碼建議,否則您必須重寫代碼,如果任何人提供代碼http://android-er.blogspot.in/2014/02/android-sercerclient-example-client.html。 –

+0

沒有任何級別的TCP API可以告訴你這個金屬。你所有的是沒有發送或接收錯誤。 – EJP

+0

我創建了套接字,嘗試{socket} = IO.socket(「http:// 192 ...:8080」); (URISyntaxException e){ e.printStackTrace(); } socket.connect(); 現在我想知道如果插座當前連接。 (我使用如果(socket.connected)),但它告訴我,插座是否已連接在某個點 – yassine

回答

0

EJP的答案已經很好,你基本上不必檢查套接字是否連接。未連接的套接字上的操作將導致異常。因此,你所要做的就是試着抓住你的代碼。檢查插座是否是你的操作之前,右側開放是不夠的,因爲你可以遇到麻煩,如果出現這種情況:

if(socket.isConnected()) { 
    // cut the ethernet cable here 
    socket.read/write operations 
} 

而且TCP不直接處理斷開事件。應該如何立即在物理層面檢測到斷開連接,如果以太網電纜被切斷或類似?你根本做不到,總有一段時間需要檢測這個。對於常規的斷開連接,可能有可能,但這也是不安全的,因爲我已經展示過的例子,所以你永遠不能相信這樣的功能或方法。

相關問題