//設定套接字選項為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 選項。
相關詞條
-
setsockopt
捆綁,應用程式可在bind()調用前先設定SO_REUSEADDR選項...。 SO_REUSEADDR BOOL 允許套接口和一個已在使用中的地址捆綁(參見..., SOL_SOCKET, SO_REUSEADDR, ( const char...
簡述: 注釋: 操作特性 返回值: 用法 -
bind()
的SO_REUSEADDR選項)。 WSAEFAULT:namelen參數太小(小於...
簡述 注釋 -
setsockopt()
SO_REUSEADDR選項。請注意僅在bind()調用時該選項才被解釋;故此無需(但也無害... int 為接收確定緩衝區大小。SO_REUSEADDR BOOL...
簡述 注釋 -
從容關閉
SO_REUSEADDR 屬性(即允許重用),否則偵聽會失敗。4、 S的【協助...
SOCKET 編程套接字實現 從容關閉 -
多播
SO_REUSEADDR選項,以允許套接字綁紮到一個已在使用的地址上。4.綁定套接字...
歷史 網路通信中的多播 -
TCPIP高效編程改善網路程式的最新技巧
3.9 技巧23:伺服器應該設定SO_REUSEADDR選項...
基本信息 編輯推薦 內容簡介 作譯者 目錄 -
飛秋工作室
一起使用的一款區域網路聊天軟體叫做飛秋,現在基本上被飛鴿、飛鴿傳書、FreeEIM、XEIM等區域網路通訊工具所取代,區域網路內...
簡介 發展 FREEEIM 原理