首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否启用局域网多播?

是否启用局域网多播?
EN

Stack Overflow用户
提问于 2013-08-08 15:53:43
回答 2查看 487关注 0票数 0

我正在尝试用c语言在OSX上编写代码(如果更容易的话也可以使用objective)来确定当前机器(机器连接到的路由器)上是否启用了多播。为了做到这一点,我尝试了以下步骤:

  1. 打开一个端口并通过多播发送数据。
  2. 侦听所有活动适配器的响应。
  3. 过滤掉‘回环’适配器。
  4. 如果没有回复,则可能禁用多播。

作为网络编程的新手,我不明白如何通过发送随机数据从任何活动适配器获得响应,除非我在正在监听的机器上安装了软件。是否有某个预留的多播IP总是会引起响应,还是有更好的方法去做这件事?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-08 16:40:41

要确定机器是否有IP多播地址活动(我认为这就是“启用多播”的意思),请查看路由表,看看是否在224.0.0.0至239.255.255.255之间找到一个或多个IP v4地址。

票数 1
EN

Stack Overflow用户

发布于 2013-08-08 16:15:25

多播由DHCP实现,DHCP不是您的本地计算机。DHCP为连接到该DHCP服务器的多个客户端分配地址。当您制作一个多播消息时,您将它发送到这个DHCP服务器,然后DHCP服务器接收该数据包,找到映射到该多播地址的客户端,然后以一个路由器自动复制的特殊数据包发送它(因此,如果组中有2人被连接到一个路由器,而该路由器连接到另一个路由器(称为路由器2),路由器2将不会发送两个数据包,它将发送一个,然后路由器1将向其客户端发送两个副本。这样做的目的是为了每次都加快速度,而不是发送重复的数据)。就客户端而言,客户端不是为了允许多播而“设置”,而是由路由器设置它们,其余的对客户端是透明的。如果客户端连接到多播组,则必须查看DHCP服务器是否创建了多播组,然后从映射到多播组的IP地址中查找计算机名称。

通过监听所有活动适配器,您只会得到数据包,这些数据包不会告诉您它在多播网络中的作用,因为它们看起来与其他数据包类似(因为路由器将在您看到数据包之前将多播地址更改为您的ip地址)。这就是组播的美妙之处。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18130587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档