萬盛學電腦網

 萬盛學電腦網 >> 網絡基礎知識 >> Java網絡編程從入門到精通(29):服務端Socket的選項

Java網絡編程從入門到精通(29):服務端Socket的選項

歡迎進入Java社區論壇,與200萬技術人員互動交流 >>進入

    ServerSocket類有以下三個選項:

    1.  SO_TIMEOUT: 設置accept方法的超時時間。

    2.  SO_REUSEADDR:設置服務端同一個端口是否可以多次綁定。

    3.  SO_RECBUF:設置接收緩沖區的大小。

    一、SO_TIMEOUT選項

    可以通過SeverSocket類的兩個方法(setSoTimeout和getSoTimeout)來設置和獲得SO_TIMEOUT選項的值,這兩個方法的定義如下:

    setSoTimeout方法的timeout參數表示accept方法的超時時間,單位是毫秒。在通常情況下,ServerSocket類的accept方法在等待客戶端請求時處於無限等待狀態。如HTTP服務器在沒有用戶訪問網頁時會一直等待用戶的請求。一般不需要對服務端設置等待客戶端請求超時,但在某些特殊情況下,服務端規定客戶端必須在一定時間內向服務端發出請求,這時就要設置等待客戶端請求超時,也就是accept方法的超時時間。當設置客戶端請求超時後,accept方法在等待超時時間後拋出一個SocketTimeoutException異常。下面的代碼演示了如何設置和獲得SO_TIMEOUT選項的值,超時時間通過命令行參數方式傳入AcceptTimeout.

    執行下面的命令:

copyright © 萬盛學電腦網 all rights reserved