最近做UDP组播,能发送出去,也可以接收到本机发送的数据,但是无法接受其他设备发送的设备。求助啊。 代码如下:
 
经确认,其他设备发送成功的。
 
MulticastSocket socket = new MulticastSocket(12345); 
   InetAddress group = InetAddress.getByName("224.0.1.1"); 
   socket.joinGroup(group);
    socket.setLoopbackMode(true);
    DatagramPacket packet; 
      byte[] buf = new byte[256]; 
      packet = new DatagramPacket(buf, buf.length); 
      DatagramPacket outPacket = new DatagramPacket(new byte[0] , 
        0 ,InetAddress.getByName("224.0.1.1") , 12345);
       
       //设置发送用的DatagramPacket里的字节数据
       byte[] bufff={1,2};
       outPacket.setData(bufff);
       socket.send(outPacket);// 发送
       boolean g=false;
       int tppp= socket.getTTL();
       socket.setTTL((byte)32);
       while(!g)
       {
        socket.receive(packet);  //  可以接收到上面发送的 1,2   但是其他设备的无法接受到。 
       if(bufff!=null)
        {
         
        }
       }
 

解决方案 »

  1.   

    不在同一个网络肯定无法接收到的
      

  2.   


    在同一个网络的,  都加入了同一个路由器。
      

  3.   

    如果你的IP为:192.168.1.100,子网掩码为:255.255.255.0,则广播地址为:192.168.1.255你把224.0.1.1换成:224.0.1.255后再试试
      

  4.   

    应该不是这个问题,因为他发出去的数据,电脑上的软件可以收到,而电脑上的软件发出的数据,手机无法收到。
      

  5.   

    找到答案了, 其实是    版本的问题, 经查的资料。 2.1版本以上不支持组播接收。  只要把版本用2.1以下就可以了,我现在用的是 1.6    
      

  6.   

    我也换成1.6版本了 还是不行