Hallo, habe ein Problem. Wenn ich den CRC Wert des Inhaltes eines UDP Paketes berechne danach das Paket verschicke und nochmals den CRC Wert des Inhalts berechne kommt ein anderer Wert raus! Was mache ich falsch?
Etwas habe ich schon rausgefunden, wenn ich genau weiß wie groß der Inhalt des Paketes ist und ich nur genau die Größe angebe beim Empfangen des Paketes klappt es mit der Berechnung des CRC's. Was mache ich aber, wenn ich nicht genau weiß wie groß das Paket ist?
Java:
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.zip.CRC32;
public class Test {
/**
* @param args
*/
public static void main(String[] args) throws IOException {
DatagramSocket socket = new DatagramSocket(5008);
byte[] data = "zu verschickende Daten....".getBytes();
CRC32 crc = new CRC32();
crc.update(data);
System.out.println(crc.getValue());
DatagramPacket packet = new DatagramPacket(data, data.length);
packet.setPort(5008);
packet.setAddress(InetAddress.getByName("localhost"));
socket.send(packet);
byte[] buf = new byte[508];
DatagramPacket packetIn = new DatagramPacket(buf, 508);
socket.receive(packetIn);
byte[] test = packetIn.getData();
crc.reset();
crc.update(test);
System.out.println(crc.getValue());
}
}
Etwas habe ich schon rausgefunden, wenn ich genau weiß wie groß der Inhalt des Paketes ist und ich nur genau die Größe angebe beim Empfangen des Paketes klappt es mit der Berechnung des CRC's. Was mache ich aber, wenn ich nicht genau weiß wie groß das Paket ist?
Zuletzt bearbeitet: