# re: 一個關于時間間隔的問題,請大俠們幫一下忙了。急!!! 回復 更多評論
2007-01-04 22:16 by
連接時可以設置接連超時,socket.connect(SocketAddress endpoint, int timeout) ;
如果是讀取內容,也可以設置超時socket.setSoTimeout(int timeout);要在讀取內容前設置,jre 1.4以上都支持
我想這樣可以解決你的問題吧,捕獲相應的異常做相應的處理就可以了,具體可以參考jdk的文檔
# re: 一個關于時間間隔的問題,請大俠們幫一下忙了。急!!! 回復 更多評論
2007-01-05 16:00 by
多謝樓上給的提示,我按照你說的設置了socket.setSoTimeout(30000);得到了我的目的。看來我有必要多研究一下socket函數了哈哈
# re: 一個關于時間間隔的問題,請大俠們幫一下忙了。急!!! 回復 更多評論
2011-11-25 11:43 by
java.net
類 Socket
java.lang.Object
java.net.Socket
直接已知子類:
SSLSocket
setSoTimeout
public void setSoTimeout(int timeout)
throws SocketException啟用/禁用帶有指定超時值的 SO_TIMEOUT,以毫秒為單位。將此選項設為非零的超時值時,在與此 Socket 關聯的 InputStream 上調用 read() 將只阻塞此時間長度。如果超過超時值,將引發 java.net.SocketTimeoutException,雖然 Socket 仍舊有效。選項必須在進入阻塞操作前被啟用才能生效。超時值必須是 > 0 的數。超時值為 0 被解釋為無窮大超時值。
參數:
timeout - 指定的以毫秒為單位的超時值。
拋出:
SocketException - 如果底層協議出現錯誤,例如 TCP 錯誤。
從以下版本開始:
JDK 1.1
另請參見:
getSoTimeout()