【发布时间】:2011-09-05 01:30:28
【问题描述】:
我正在用 ruby 编写一个网络应用程序,它应该使用 UDP 多播。
我的问题是我想在 localhost 上运行多个实例以进行测试,但多播只有在我将套接字绑定到真实网络接口时才有效。
有没有办法为环回接口启用多播,以便所有 127.0.0.x 都能收到我发送的消息? 目前我启用多播:
ip = IPAddr.new('234.56.78.9').hton + IPAddr.new('0.0.0.0').hton
socket.setsockopt(Socket::IPPROTO_IP, Socket::IP_ADD_MEMBERSHIP,ip)
#socket.bind '127.0.0.1',1234 ##does not receive multicast :(
socket.bind '0.0.0.0',1234
另外,我注意到如果我例如将套接字绑定到 127.0.0.4 并发送一条消息,在数据包中源 ip 无论如何都是 127.0.0.1...有没有办法设置源 IP,所以它显示与我绑定套接字的 IP 相同?
【问题讨论】:
-
127.0.0.255 或 127.255.255.255 是否有效?
标签: ruby networking udp ip