UDP は接続のないプロトコルであるため、データが受信者によって受信されるという保証はありません。しかし、データグラムが受信された場合、データが部分的/完全に破損している可能性はありますか?
UDPヘッダーにもCRCが含まれているので、データグラムを受信した場合、データは信頼できると思いますか? それは正しいですか?
問題をさらに詳しく説明するために、次のようにJava udpサーバーからデータを送信します
// Sending in Java
InetAddress group = InetAddress.getByName("230.0.0.1");
//buf is a String.getBytes();
DatagramPacket packet = new DatagramPacket(buf, buf.length, group, 4446);
//socket is DatagramSocket in Java
socket.send(packet);
このようにC#クライアントでデータを取得します
// client is UdpClient of C#
Byte[] data = client.Receive(ref localEp);
strData = Encoding.ASCII.GetString(data);
私はCRCを自分で操作していません。受信側でbufで送信されたのと同じデータを取得します。バイトデータの配列がある場合、ここでCRCを確認するにはどうすればよいですか..?またはそれが正しいと仮定します(CRCが一致する極端なケース、つまりCRCとデータが魔法のように破損しているという極端なケースに耐えることができます)