【发布时间】:2023-04-02 16:45:01
【问题描述】:
我编写了一个 C++ 应用程序来通过套接字发送/接收 UDP 消息。该应用程序能够发送/接收多播和单播消息。
我想知道,多播和单播消息都使用单端口可以吗?或者为单播和多播消息设置单独的端口是否更好?
我预计每秒大约 100 多条消息,包括单播和多播。
【问题讨论】:
-
没关系。除非你在一个严重的贫民窟系统上,否则你所期望的负载甚至不应该产生明显的影响。
我编写了一个 C++ 应用程序来通过套接字发送/接收 UDP 消息。该应用程序能够发送/接收多播和单播消息。
我想知道,多播和单播消息都使用单端口可以吗?或者为单播和多播消息设置单独的端口是否更好?
我预计每秒大约 100 多条消息,包括单播和多播。
【问题讨论】:
只要你只有一个套接字,接收单播和多播流量都没有问题。
另一方面,如果您在同一个端口上打开了两个套接字,您可能会看到一些与单播不一致的行为。
在同一端口上有两个套接字,到达该点的任何多播流量都将发送到两个套接字。但是,传入的单播流量会随机出现在两个套接字上或两个套接字之一上。具体行为取决于相关操作系统。
由于您想同时接收单播和多播,请使用单个套接字。 不要在同一个端口上使用多个套接字,除非您使用多播only。
【讨论】:
应该没问题。只是不要绑定到多播地址或网络接口地址(使用 0.0.0.0:port),也不要连接到远程地址。您将看到流向此端口的所有流量。
【讨论】: