我已经编写了一个通过套接字发送/接收UDP消息的C++应用程序。该应用程序能够发送/接收多播和单播消息。
我想知道,组播报文和单播报文都使用单一端口可以吗?或者对单播和多播消息使用单独的端口更好?
我预计每秒大约有100+消息,包括单播和多播。
发布于 2016-12-20 22:49:47
只要您只有一个套接字,接收单播和组播流量就没有问题。
另一方面,如果您在同一端口上打开了两个套接字,您可能会看到一些与单播不一致的行为。
当两个套接字位于同一端口时,到达该点的任何组播流量都将发送到这两个套接字。但是,传入的单播流量会随机出现在两个套接字上或其中一个套接字上。确切的行为取决于所讨论的操作系统。
由于您希望同时接收单播和多播,因此请使用单个套接字。不要在同一端口上使用多个套接字,除非您使用的是仅限多播的。
发布于 2014-06-01 09:11:40
应该没问题。只是不要绑定到组播地址或网络接口地址(使用0.0.0.0:port),也不要连接到远程地址。您将看到所有流向此端口的流量。
https://stackoverflow.com/questions/23974121
复制相似问题