【问题标题】:Pros/Cons of sending/receiving unicast and multicast UDP message on same port?在同一端口上发送/接收单播和多播 UDP 消息的优缺点?
【发布时间】:2023-04-02 16:45:01
【问题描述】:

我编写了一个 C++ 应用程序来通过套接字发送/接收 UDP 消息。该应用程序能够发送/接收多播和单播消息。

我想知道,多播和单播消息都使用单端口可以吗?或者为单播和多播消息设置单独的端口是否更好?

我预计每秒大约 100 多条消息,包括单播和多播。

【问题讨论】:

  • 没关系。除非你在一个严重的贫民窟系统上,否则你所期望的负载甚至不应该产生明显的影响。

标签: c++ sockets udp multicast


【解决方案1】:

只要你只有一个套接字,接收单播和多播流量都没有问题。

另一方面,如果您在同一个端口上打开了两个套接字,您可能会看到一些与单播不一致的行为。

在同一端口上有两个套接字,到达该点的任何多播流量都将发送到两个套接字。但是,传入的单播流量会随机出现在两个套接字上或两个套接字之一上。具体行为取决于相关操作系统。

由于您想同时接收单播和多播,请使用单个套接字。 不要在同一个端口上使用多个套接字,除非您使用多播only

【讨论】:

    【解决方案2】:

    应该没问题。只是不要绑定到多播地址或网络接口地址(使用 0.0.0.0:port),也不要连接到远程地址。您将看到流向此端口的所有流量。

    【讨论】:

      猜你喜欢
      • 2021-09-05
      • 2012-06-05
      • 1970-01-01
      • 1970-01-01
      • 2018-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-21
      相关资源
      最近更新 更多