我在http://ntrg.cs.tcd.ie/undergrad/4ba2/multicast/antony/example.html找到了一个多播示例。纠正一些错误后,该程序似乎在我们的网络中运行良好。
我现在需要多播到不同的子网。这是我的设置:我的机器 ==> cisco 路由器 ==> Internet ==> cisco hub ==> 客户端机器。
我的本地 IP 地址是 10.10.15.20。客户端机器的 IP 地址是 192.168.15.101。
我们的网络提供商已在 cisco 路由器和 cisco hub 之间配置了一条 GRE 隧道。如果我从我的机器 ssh 或 ping 到 192.168.15.101,它工作得很好。
我现在需要在我的机器上运行我的多播服务器程序,并在客户端机器上运行客户端程序。但是,来自我的服务器的消息似乎从未到达客户端。
网络服务提供商演示了一个似乎可以进行多播的程序。不幸的是,他们没有应用程序的源代码。他们所说的只是他们使用 239.255.255.255 作为组 ID,使用 6000 作为端口。我更改了我们的应用程序以使用这些参数,但仍然无法让客户端和服务器进行通信。
我在想多播数据报可能会到达路由器,但路由器不知道数据报是否必须在 GRE 隧道上发送或发送到 Internet。这是因为服务器代码没有具体提及 192.168.15.xx 网络。
我觉得我需要以某种方式向路由器传递多播数据包必须真正转发到内部网络的提示。鉴于目标客户端 id 为 192.168.15.xx,我尝试将服务器的 groupid 设置为 224.192.168.15(从网上看来,多播的前四位必须是 1110。我使用的是 0b11100000)。然而,即使这样似乎也不起作用。
我很茫然。您能否指导我如何提示路由器多播是指 192.168.15.x 网络?问候。
