2013-08-23 69 views

回答

4

isConnected()只告訴你,如果你成功連接到套接字。 isClosed()告訴你是否叫close()

看看這個傢伙響應https://stackoverflow.com/a/3701249/2453771

+0

好吧,接下來的問題是調用close關閉連接?如果不是,會怎樣? – user2312638

+0

調用close()會關閉你的socket的一面。服務器沒有通知您關閉了套接字。 – Nick

0

嘗試

socket.isClosed() 

返回boolian,這個插座是否關閉。 參考 Sockets

0

「當你使用套接字(),您似乎都忽略了, Socket.isConnected()告訴你Socket.connect()是否已經 稱爲與否。同樣爲isClosed( )和close()

混淆這些方法是由於將應用程序控制下的套接字 的狀態與協議控制下的整體連接的狀態 混淆。isconnected()和isClosed()告訴你做了什麼插座。 有沒有其他的API比讀寫確定連接的狀態 。」

Oracle documantion在這裏<它很好地解釋了,一旦你打電話.close()連接被關閉,您可以通過isClosed()檢查。

.close()

關閉此套接字

當前在此套接字上的I/O操作中被阻塞的任何線程將會拋出一個SocketException, 。

一旦套接字已關閉,它不可用於網絡使用的進一步 (即不能重新連接或反彈)。需要創建一個新的套接字 。