2

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とデータが魔法のように破損しているという極端なケースに耐えることができます)

4

3 に答える 3