我试图在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");
}
任何人都可以看到为什么这不起作用谢谢。
答案 0 :(得分:0)
数据的第四个字节由packet.getData()[3]
给出。
如果您的评论中没有回答,您将需要进一步澄清。