2011-05-30 57 views
1

我在使用UDP多播的ruby中編寫網絡應用程序。在loopback接口上模擬多播

我的問題是我想在本地主機上運行多個用於測試目的的實例,但是多播僅在我將套接字綁定到真實網絡接口時才起作用。

是否有某種方法可以爲回送接口啓用多播,以便所有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併發送一條消息,在數據包中source ip是127.0.0.1總之...有沒有一種方法可以設置源IP,使其顯示與套接字綁定的IP相同的IP?

+0

確實127.0.0.255或127.255.255.255可以工作嗎? – rogerdpack 2011-06-17 16:03:57

回答

2

Solaris允許您在回送設備上使用多播。對於其他操作系統,您可以在發送方(Unix)或接收方(Windows)上啓用IP_MULTICAST_LOOP以獲得類似的效果。