CDの保有枚数を教えてください

友人からの話で具体的な説明ができないのですが、何か参考になるアドバイスなど
ありましたらよろしくお願いします。

事象としては、C言語の reeive関数でエラーとなり、エラー内容は
E_NO_BUFF(?)です。
(Win32APIの ERROR_NOT_ENOUGH_MEMORY と同じだと思いますが)
エラーになったときシステム全体のメモリ状況がどうだったかは不明です。
ただ、他のプロセスではエラーは発生していないようです。
イベントログにもその旨を示すようなものは出ていなかったようです。
システム全体でメモリが不足している状況でないとした場合、このエラーが
返ることはあるのでしょうか。
どこかに receive関数が使用する受信バッファみたいなものがあり、そこが
不足した、とか、ブロッキングモード/ノンブロッキングモードの違いによる、
など。。。

OSはWindows2000 Server です。
#詳しい説明ができず、すみません。

A 回答 (2件)

recieveを使っているってことは、ソケット関連の処理を


やっているってことですよね?
recieveでE_NO_BUFFが帰る場合は、ソケットの受信バッファが不足している場合などに発生すると思います。
よって、recieveでE_NO_BUFFが頻繁に発生するのであれば、setsockopt()でソケットの受信バッファの設定を調整するか、リトライして受信可能になるまで待つかどちらかが処理としてはよいかと思われます。
ソケットは送信キュー、受信キューを持っていますので、そこらへんの調整をプログラムレベルで行えば解決できると
思います。
    • good
    • 0
この回答へのお礼

お礼が遅くなりすみませんでした。
アドバイス、ありがとうございました。

お礼日時:2003/04/09 23:08

... receive 関数ってなんですか?

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!