在关于 SO_REUSEPORT 的讨论中,将以下问题发布到reddit,但没有答案。我想知道 Stack Overflow 是否知道答案。
谁能告诉我这如何与多播交互?
我有一个应用程序,程序应该在其中侦听多播 UDP 消息,并且该程序可能在同一台计算机上启动多次。当一条消息到来时,所有监听进程都应该得到它。
我注意到在 Linux 上,如果我不设置 SO_REUSEPORT,它可以正常工作,如果我理解正确,设置 SO_REUSEPORT 可能是错误的做法——我不希望在进程之间分发 UDP 消息,我想要获取副本的所有过程。但是,在 OS X 上,除非设置了 SO_REUSEPORT,否则程序的第二次执行无法找到空闲端口。
tl; dr:使用多播时是否应该设置 SO_REUSEPORT?