我编写了一个C ++应用程序,用于通过套接字发送/接收UDP消息。该应用程序能够发送/接收多播和单播消息。
我想知道,将单个端口用于多播和单播消息是否可以?或者,为单播和多播消息提供单独的端口更好吗?
我期待每秒大约100条消息,包括单播和多播。
答案 0 :(得分:1)
应该没问题。只是不要绑定到多播地址或网络接口地址(使用0.0.0.0:port)并且不要连接到远程地址。您将看到进入此端口的所有流量。
答案 1 :(得分:1)
只要您只有一个套接字,就可以同时接收单播和多播流量。
另一方面,如果在同一端口上打开了两个套接字,则可能会看到单播的一些不一致行为。
在同一端口上有两个套接字,到达该点的任何多播流量都将被发送到两个套接字。但是,传入的单播流量要么随机出现在两个套接字上,要么出现在两个套接字中的一个上。确切的行为取决于相关的操作系统。
由于您希望同时接收单播和多播,请使用单个套接字。 除非您使用多播 ,否则请勿在同一端口上使用多个套接字。