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