2017-02-12 89 views
-1

我有我的界面上的以下數據流:多播消息未被處理

08:52:45.777966 IP CICO.5120> 224.7.7.254.5701:UDP,長度30

8時52分:45.778293 IP CICO.5120> 224.7.7.254.5701:UDP,長度27

08:52:46.176872 IP CICO.5120> 224.7.7.254.5701:UDP,長度30

我寫一個應該接收的java類e和精心製作的數據包,在這裏類的切:

DatagramPacket rxPachet = new DatagramPacket(buff, buff.length); 
try { 
    String group = "224.7.7.254"; 
    MulticastSocket udpSocket = new MulticastSocket(5701); 
    udpSocket.joinGroup(InetAddress.getByName(group)); 
    while (true) { 
     new ShowMessage("....inside....."); 
     try { 
      udpSocket.receive(rxPachet); 
      buff = rxPachet.getData(); 
      // SOME OTHER STUFF...... 

但是當我運行我的應用程序,我沒有看到任何處理數據包。

+0

您是否啓用了防火牆來阻止這些數據包?您的網絡設置是否允許多播? –

回答

-1

我想我想通了這個問題,這裏的類的新大切:

MulticastSocket udpSocket = new MulticastSocket(5701); 
udpSocket.joinGroup(new InetSocketAddress("224.7.7.254", 5701), NetworkInterface.getByName("vmnet2")); 

一兩件事,我不得不添加選項-Djava.net.preferIPv4Stack = true如果在Mac上運行,否則我會得到異常「無法打開組播套接字」。感謝大家。