Linux socket / 端口复用
生活随笔
收集整理的這篇文章主要介紹了
Linux socket / 端口复用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
int reuseaddr = 1;
int r = setsockopt(listenfd, SOL_SOCKET, SO_REUSEADDR, (const void *)&reuseaddr, sizeof(reuseaddr));
當有一個有相同本地地址和端口的 socket1 處于 TIME_WAIT 狀態時,而你啟動的程序的 socket2 要占用該地址和端口,你的程序就要用到該選項。(開啟該功能時,?server?關閉時可以立刻重啟?server?的功能。) SO_REUSEADDR 允許同一 Port 上啟動同一服務器的多個實例(多個進程)。但每個實例綁定的IP地址是不能相同的。在有多塊網卡或用 IP Alias 技術的機器可以測試這種情況。 SO_REUSEADDR?允許單個進程綁定相同的端口到多個 socket 上,但每個 socket 綁定的 ip 地址不同。這和 2很相似,區別請看UNPv1。 SO_REUSEADDR 允許完全相同的地址和端口的重復綁定。但這只用于UDP的多播,不用于TCP。
SO_REUSEADDR 可以用在以下 4 種情況下。?(摘自《Unix網絡編程》卷一,即UNPv1)
(SAW:Game Over!)
總結
以上是生活随笔為你收集整理的Linux socket / 端口复用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mmap 和 shm 区别
- 下一篇: linux 其他常用命令