2014-06-13 35 views
0

(注 - 這是不是重複 - 這個問題明確提到不修改的InputStream。)Java TCP套接字:檢查連接的遠端是否關閉無需修改套接字的InputStream?

我希望能夠以檢查連接的遠程端無需修改套接字的InputStream的關閉。我不能在InputStream上調用read(),因爲它會讀取數據,其他部分代碼將從套接字中讀取數據並期待這些數據。我也試着用0長度的緩衝區調用read(),但這也不起作用(即使連接斷開,也不返回0而不是-1)。

(我想我想要做的是調用read(),如果結果不爲-1,「推」的字節回的InputStream。)

有什麼辦法來解決這個問題?

謝謝!

回答

-1

您可以使用函數isReachable()來做到這一點。
這裏是一個例子:http://kodejava.org/how-do-i-ping-a-host/

+0

不,我確定遠端是可以訪問的,我只想檢查連接是否仍然存在,而不修改套接字的InputStream。 – osman

+0

isReachable()不檢查連接是否關閉。 -1 – EJP