當前位置:編程學習大全網 - 編程軟體 - Java:這兩種設置超時時間有什麽區別?

Java:這兩種設置超時時間有什麽區別?

以下來自官方文檔,學習編程只要看文檔就可以了

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 子類

  • 上一篇:數控加工英錐管螺紋
  • 下一篇:青島銀盛泰新空間小區周邊配套怎麽樣?
  • copyright 2024編程學習大全網