UDPでの受信処理

解決


GOジャグ  2005-01-25 01:28:20  No: 56152  IP: [192.*.*.*]

よろしくお願いします。

UDPでのソケット通信で受信処理についての質問です。
クライアントから24バイトのデータを送信しています。

サーバ側で受信するときにrecvfromを使ってますが
受信サイズを1バイトにするとrecvfromでエラーが帰ってきます。
TCPでは1バイトずつ受信できました。

開発環境は
VC++.NET
Windows2000です。

宜しくお願いします。

編集 削除
KING・王  2005-01-25 08:02:06  No: 56153  IP: [192.*.*.*]

とりあえず、どんなエラーが返ってきますか?

recvfrom()の戻り値と、WSAGetLastError()の結果ぐらいは載せましょう。

編集 削除
GOジャグ  2005-01-25 11:28:04  No: 56154  IP: [192.*.*.*]

KING・王さんありがとうございます。

>recvfrom()の戻り値と、WSAGetLastError()の結果ぐらいは載せましょう。

ですね。(~_~メ)

recvfromの戻り値は−1
WSAGetLastErrorの値は 10040です。
調べたところ『メッセージが長すぎるエラー』
だと思うのですが
できれば1バイトづつ終了文字が出るまで受信という処理に
したいので出来る方法があればご教授願います。

編集 削除
YuO  2005-01-25 12:21:55  No: 56155  IP: [192.*.*.*]

UDPはフレーム境界を維持します。
そのため,24 octetのデータを送信してきたのであれば,
24 octetのデータとして受信しなければいけません。

編集 削除
GOジャグ  2005-01-25 13:37:04  No: 56156  IP: [192.*.*.*]

>UDPはフレーム境界を維持します。
>そのため,24 octetのデータを送信してきたのであれば,
>24 octetのデータとして受信しなければいけません。

そうですか。
24 octetのデータとして受けるよう修正します。

YuOさん、KING・王さん、ありがとうございました。

編集 削除