我正在用C编写一个用于Windows的程序,它必须向几个对等端发送消息,每个对等端具有不同的IP和端口。无需保证邮件的传递。所以我希望发送一个不限于我所在的同一局域网的多播消息。
我该怎么做?我是否必须将每条消息分别发送给每个对等方,或者是否可以选择在没有迭代的情况下发送给所有人?
我是否需要打开与每个对等端的套接字连接?
谢谢, 迈克尔。
答案 0 :(得分:0)
有两种常见的方法可以做到这一点。
您在程序中维护一个IP地址接收器列表,迭代每个接收器并将每个数据报的副本发送到每个接收器。
接收者列表必须存在于某处。如果使用IP多播,则接收器列表由网络设备维护,通常是路由器或第3层交换机。在路由器中启用Internet组管理协议(IGMP),然后接收方可以向路由器发送IGMP加入请求,以将自己添加到组播组。组播组定义为IP端点 - IP地址和端口。在IPv4中,地址224.0.0.0到239.255.255.255被指定为多播地址。要将数据报发送到多播组的所有成员,只需通过UDP Unicast将数据报发送一次到多播组端点。然后路由器将数据报转发给该组的所有成员。
如果接收器与您不在同一个LAN上,您可能无法使用IP多播。 IP组播只有在您可以提前知道可能加入您的组播组的所有接收者的网络路由时才能工作,并确保所有网络设备都配置正确。
您无法通过互联网使用IP多播。