我有一个监听多播的程序,我希望它能够与同一程序的其他实例共享一个端口,这样如果我在同一主机上运行了3个实例,它们都可以共享同一个港口。
是否可以这样做,是否涉及setsockopt和SO_REUSEADDR?
编辑:我要从this site获取代码,我唯一改变的是消息中发送的内容。
答案 0 :(得分:1)
setsockopt是我需要的,这是我所做的一个例子:
在声明中:
int yes = 1;
然后在致电bind()
之前,我致电setsockopt()
setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes));
现在允许我在同一台机器上运行多个程序实例,在同一端口上侦听多播。