setSoTimeout
public void setSoTimeout(int timeout)
throws SocketException
啟用/禁用帶有指定超時值的 SO_TIMEOUT,以毫秒為單位。將此選項設為非零的超時值時,在與此 Socket 關聯的 InputStream 上調用
read() 將只阻塞此時間長度。如果超過超時值,將引發 java.net.SocketTimeoutException,雖然 Socket
仍舊有效。選項必須在進入阻塞操作前被啟用才能生效。超時值必須是 > 0 的數。超時值為 0 被解釋為無窮大超時值。
參數:
timeout - 指定的以毫秒為單位的超時值。
拋出:
SocketException -
如果底層協議出現錯誤,例如 TCP 錯誤。
connect
public void connect(SocketAddress endpoint,
int timeout)
throws IOException
將此套接字連接到服務器,並指定壹個超時值。超時值零被解釋為無限超時。在建立連接或者發生錯誤之前,連接壹直處於阻塞狀態。
參數:
endpoint - SocketAddress
timeout - 要使用的超時值(以毫秒為單位)。
拋出:
IOException - 如果在連接期間發生錯誤
SocketTimeoutException
- 如果在連接之前超時期滿
IllegalBlockingModeException
- 如果此套接字具有關聯的通道並且該通道處於非阻塞模式
IllegalArgumentException
- 如果端點為 null 或者此套接字不支持 SocketAddress 子類