绑定在同一端口上的两个进程如何接收相同的消息

How can two processes which bind on the same port receive the same message?

本文关键字:两个 进程 何接收 消息 绑定      更新时间:2023-10-16

我有两个进程。 两者都侦听同一个端口。
这是UDP multicast,因此两者都使用 socket 选项 SO_REUSEADDR ,并在 bind() 之前加入多播组。

当我向多播组发送消息时ip:port只有一个进程收到该消息。
他们两个怎么能得到它?

谢谢。

两个进程可以侦听同一个端口。尽管用于连接的两个套接字不能绑定到具有相同端口的同一 IP 地址。

您只需为主机文件中的每个进程添加一个指向唯一 IP 地址的条目。

像这样:将进程 P1 绑定到 127.0.0.1 端口 8080,将 P2 绑定到 127.0.0.2 端口 8080。

我认为这

是不可能的,而且我认为有时这样会更加连贯。也许你应该实现一个接收器(它将侦听端口),它将通过进程间通信(例如管道)将消息分发到其他进程。