- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Cの receive関数でメモリ不足のエラーとなる)
Cの receive関数でメモリ不足のエラーとなる
このQ&Aのポイント
- C言語の reeive関数を使用する際にメモリ不足のエラーが発生する原因と対処法について教えてください。
- 友人からの話で具体的な説明ができないのですが、C言語の reeive関数でエラーが発生し、エラーコードは E_NO_BUFF です。他のプロセスではエラーは発生していないようです。メモリが不足している状況でない場合、このエラーが返ることはあるのでしょうか。
- OSはWindows2000 Serverを使用しています。receive関数が使用する受信バッファが不足している可能性や、ブロッキングモード/ノンブロッキングモードの違いによるエラーの可能性などが考えられます。アドバイスがあれば教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
recieveを使っているってことは、ソケット関連の処理を やっているってことですよね? recieveでE_NO_BUFFが帰る場合は、ソケットの受信バッファが不足している場合などに発生すると思います。 よって、recieveでE_NO_BUFFが頻繁に発生するのであれば、setsockopt()でソケットの受信バッファの設定を調整するか、リトライして受信可能になるまで待つかどちらかが処理としてはよいかと思われます。 ソケットは送信キュー、受信キューを持っていますので、そこらへんの調整をプログラムレベルで行えば解決できると 思います。
その他の回答 (1)
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
回答No.1
... receive 関数ってなんですか?
お礼
お礼が遅くなりすみませんでした。 アドバイス、ありがとうございました。