Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个侦听多播的程序,我希望它能够与同一程序的其他实例共享一个端口,这样如果我有 3 个实例在同一主机上运行,它们都可以共享同一个端口。
是否可以这样做,是否涉及 setsockopt 和 SO_REUSEADDR?
编辑:我要离开 这个网站来获取我的代码,我唯一改变的是消息中发送的内容。
setsockopt 是我需要的,这是我所做的一个例子:
在声明中:
int yes = 1;
然后在打电话给bind()我之前setsockopt()
bind()
setsockopt()
setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes));
这现在允许我在同一台机器上运行程序的多个实例,在同一个端口上监听多播。