SO_REUSERADDR選項作用

套接字選項總結:
SO_REUSEADDR:
1)SO_REUSEADDR允許啓動一個監聽服務器並捆綁其衆所周知的端口,即使以前建立的將
該端口用作他們的本地端口的連接仍存在。這個條件通常是這樣碰到的:
a)啓動一個監聽服務器,
b)連接請求到達,派生一個子進程來處理這個客戶
c)監聽服務器終止,但子進程繼續爲現有連接上的客戶提供服務
d)重啓監聽服務器
默認情況下,當監聽服務器在步驟d通過調用socket,bind和listen重新啓動時,由於它試圖綁定一個現有連接
上的端口(即正由早先派生的那個子進程處理着的連接)上的端口,從而bind調用會失敗,但是如果該服務器在
socket和bind調用之間設置了SO_REUSEADDR套接字選項,那麼bind會成功(注意設置這個選項的順序,在bind之前).
所有的tcp服務器都應該指定本套接字選項,以允許服務器在這種情形下被重新啓動。
2)SO_REUSEADDR允許在同一端口上啓動同一服務器的多個實例,只要每個實例捆綁一個不同的本地ip地址即可。
對於tcp我們絕不可能啓動捆綁相同的ip地址和相同端口號的多個服務器,這是完全重複的捆綁。
3)SO_REUSEADDR允許單個進程捆綁同一端口到多個套接字上,只要每次捆綁指定不同的ip地址即可
4)SO_REUSEADDR允許完全重複的捆綁,但是本特性一般僅支持udp套接字.
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章