SO_REUSEADDR

//設定套接字選項為SO_REUSEADDR,即socket可重用 SO_REUSEADDR SO_REUSEADDR

設定套接字選項為SO_REUSEADDR,socket可重用,經常在socket通信時進行設定
//設定套接字選項為SO_REUSEADDR,即socket可重用
opt=SO_REUSEADDR;
setsockopt(listenfd,SOL_SOCKET,SO_REUSEADDR,&opt,sizeof(opt));
:編寫 TCP/SOCK_STREAM 服務程式時,SO_REUSEADDR到底什麼意思?
A: 這個套接字選項通知核心,如果連線埠忙,但TCP狀態位於 TIME_WAIT ,可以重用連線埠。如果連線埠忙,而TCP狀態位於其他狀態,重用連線埠時依舊得到一個錯誤信息,指明"地址已經使用中"。如果你的服務程式停止後想立即重啟,而新套接字依舊使用同一連線埠,此時 SO_REUSEADDR 選項非常有用。必須意識到,此時任何非期望數據到達,都可能導致服務程式反應混亂,不過這只是一種可能,事實上很不可能。
一個套接字由相關五元組構成,協定、本地地址、本地連線埠、遠程地址、遠程連線埠。SO_REUSEADDR 僅僅表示可以重用本地本地地址、本地連線埠,整個相關五元組還是唯一確定的。所以,重啟後的服務程式有可能收到非期望數據。必須慎重使用 SO_REUSEADDR 選項。

相關詞條

熱門詞條

聯絡我們