MulticastSocket上的DatagramPacket

时间:2013-09-15 08:29:08

标签: java datagram

我试图在MulticastSocket上发送一个DatagramPacket。这个位工作但是当我尝试从标题中获取信息时它无法正常工作。

while(true){
         byte[] packet = new byte[1500];

        DatagramPacket packetR = new DatagramPacket(packet, packet.length);
        socketM.receive(packetR);
         ByteBuffer data = ByteBuffer.wrap(packetR.getData());
         byte[] senderAddress = new byte[100];
         byte[] senderCommand =new byte[100];


        data.get(senderAddress,0,4);
        InetAddress senderIP = InetAddress.getByAddress(senderAddress);

         data.position(4); 
         data.get(senderCommand,0,1);
        String command = (char)senderCommand[0]+"";


        System.out.print(senderIP+":  "+ command+"\n");



        }

这样可行,但我只是将所有内容打印出来

while(true){
         byte[] packet = new byte[100];
        DatagramPacket packetR = new DatagramPacket(packet, packet.length);
        socketM.receive(packetR);
        InetAddress ip = packetR.getAddress();

        String meg = new String(packetR.getData());
        System.out.print(ip+":  "+ meg+"\n");



        }

任何人都可以看到为什么这不起作用谢谢。

1 个答案:

答案 0 :(得分:0)

数据的第四个字节由packet.getData()[3]给出。

如果您的评论中没有回答,您将需要进一步澄清。