问题描述
|
我正在用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?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)