質問

C#では、UdpClient.Send()メソッドを使用するために、私はパラメータの1つとして、私が送信していたバイト数を提供しなければならない。

どのように私はそれを送信する前に、データグラムのバイト数を計算するのですか?

役に立ちましたか?

解決

あなたがUdpClient.Send()バイトの配列(バイト[])、整数サイズ、及びIPEndPointを渡します。あなたは全体のバイト配列を送信する場合は、次のように、より多くの何もして何が少なく、自分のデータグラムのペイロードとして、あなただけの配列のLengthプロパティを使用することはできません。

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クライアントをimpementするために使用している言語わかりません。 C ++では、オペレータはsizeofはバイトの数を提供します。他のアプローチは、データ型のサイズによってはstrlen()またはそのユニコードバリアント&乗算を使用することです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top