C#では、UdpClient.Send()メソッドを使用するために、パラメーターの1つとして送信するバイト数を指定する必要があります。
データグラムを送信する前に、データグラムのバイト数を計算するにはどうすればよいですか?
UdpClient.Send()に、バイトの配列(Byte [])、整数サイズ、およびIPEndPointを渡します。データグラムのペイロードとして、バイト配列全体を送信する場合は、次のように配列の長さプロパティを使用できます。
UdpClient udpClient = new UdpClient();
IPAddress ipAddress = Dns.Resolve("www.contoso.com").AddressList[0];
IPEndPoint ipEndPoint = new IPEndPoint(ipAddress, 11004);
Byte[] sendBytes = Encoding.ASCII.GetBytes("Is anybody there?");
try{
udpClient.Send(sendBytes, sendBytes.Length, ipEndPoint);
}
catch ( Exception e ){
Console.WriteLine(e.ToString());
}
おそらくここでの混乱は、ネットワークを介して送信されるビット数を数える必要があると思うことですか?実際に必要なのは、ペイロードのサイズ(このデータグラムで実際に送信したい提供されたバイト配列の部分)です。残りは図書館が行います。
例と情報はこちら。
このUDPクライアントを実装するために使用している言語がわからない。C ++では、sizeof演算子はバイト数を提供します。他のアプローチは、strlen()またはそれらのUnicodeバリアントを使用し、データ型のサイズを乗算することです。