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