boost :: asio组播示例

时间:2012-11-06 11:17:30

标签: c++ sockets boost boost-asio multicast

我刚刚开始使用boost :: asio阅读有关多播传输的信息,我对以下内容感到有些困惑:

为什么我们需要在以下boost :: asio示例中使用“侦听地址”?那是什么意思?为什么选择与localhost不同的东西?

http://www.boost.org/doc/libs/1_37_0/doc/html/boost_asio/example/multicast/receiver.cpp

2 个答案:

答案 0 :(得分:13)

如果您有多个网络接口卡(每个NIC绑定到不同的IP地址),则必须指定侦听IP地址。

答案 1 :(得分:12)

在你的公寓里......

当您在家中使用笔记本电脑工作时,您可能并不在意。主要目标通常是将任何内容连接到机器中的所有内容,在这种情况下localhost就可以了。

...但服务器 关注!

另一方面,高端服务器通常具有多个网卡。更好的是,高性能网卡通常具有多个物理插头,并且它们都可以在不同的DHCP租约中处于活动状态。

服务器通常也会成为公共和专用网络的一部分,其中可能包含 VPN ,也可能不包含具有自己的子网和辅助功能参数的 VPN 。系统管理员会仔细考虑这些地址,并且他们非常关心每个服务可用的特定地址 。这是私人服务吗?是否存在不应该发出这些请求的不受信任的子网?

这些问题涵盖安全性和系统组织问题。它并非特定于多播:由于上述所有原因,the UNIX bind system call也会使用特定地址。