有没有办法在同一个盒子上测试多播IP?

时间:2009-11-12 00:50:14

标签: localhost multicast

如果我想测试一组多播IP程序(发送器/接收器)而不必设置网络,可以在同一个盒子上完成吗?如果是这样,需要设置或完成哪些不同的工作?

5 个答案:

答案 0 :(得分:12)

您可能已经想到了这个问题(因为问题现在是2年),但要在单个主机上进行多播,您只需做两件事:(1)确保您的接收多播套接字已设置SO_REUSEADDR (以便多个进程可以绑定相同的多播地址)和(2)确保您的发送多播套接字已设置IP_MULTICAST_LOOP(以便将数据包“环回”到同一系统上的接收器)。如果您的应用程序使用单个套接字同时发送和接收多播,您可以在其上设置两个套接字选项。

int recv_s = socket(AF_INET, SOCK_DGRAM, 0);
int send_s = socket(AF_INET, SOCK_DGRAM, 0);
u_int yes = 1;
setsockopt(recv_s, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes));
setsockopt(send_s, IPPROTO_IP, IP_MULTICAST_LOOP, &yes, sizeof(yes));

答案 1 :(得分:0)

这可能不是你想要的,但当我编写使用大量广播和套接字连接的代码时,我只是在VMWare中创建了两个虚拟机,从活动CD启动它们,然后上传我的代码。如果您的代码在Windows中运行,则只需安装两次Windows即可。 VMWare将机器放在同一个子网上,因此它们之间的通信工作得很好,广播和所有。 (我假设多播,但我没有直接经验。)

答案 2 :(得分:0)

需要进行一定数量的网络设置。如果您不想创建物理网络,可以将多个IP地址添加到单个网卡。如果您的计算机有多个网卡,您甚至可以创建一个只有两个卡和一个集线器的网络。此外,如果您的机器具有无线接口和有线接口,则通过无线和有线接口将您的机器连接到无线集线器也可以为您提供网络。

希望其中一个想法有所帮助。 Pat O

答案 3 :(得分:0)

我想说最简单的事情就是在你的网卡上设置多个IP。只要确保你听取具体地址而不是全部。

HTH

答案 4 :(得分:0)

为什么不下载VMWare的试用版?这需要一段时间,但需要设置VM。然后,在您的一个系统上运行VM的x-copies(如果可以的话)。每个都有一个虚拟网卡。然后,您可以设置网络,以便它们可以在同一网络中访问。然后,进行测试。