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