2011-11-07 19 views
0

recvfrom()のメッセージが、WindowsのCまたはC++で正しいサイズであることを確認するにはどうすればよいですか?recvfrom()のメッセージサイズを確認するにはどうすればよいですか?

ありがとうございます。

+0

Visual Studio 3.0とは何ですか? .NETはこれと何が関係していますか? 「Visual Studio .NET 2003」に付属のVisual C++コンパイラを意味しますか? –

+0

yes、fixed ..... –

答えて

1

recvfromは実際に受信したデータグラムのバイト数を返します。

必要なのは、あなたがサイズを保持し、かつfromlenパラメータとしてそのアドレスを渡すために、変数を宣言する必要があり話題

オフ、

if (iResult < 0) { /* network error */ } 
if (iResult != BufLen) { /* wrong size */ } 

旧答えです。

recvfrom実際のサイズは データグラム 送信者のアドレス(IPとポート、あなたが望む場合は返信することができるので)を記入します。

次に、実際のサイズを期待どおりにテストできます。

+1

@Tommy:本当に残念ですが、 'fromlen'パラメータは、パケットサイズではなく、送信者のアドレス(IPとポート)のサイズを取得します。パケット内容のサイズが戻り値です。私の答えを修正しました。 –

+0

gotch、ありがとうございました。 –

関連する問題