ソケットのエラー(10055:WSAENOBUFS )とは? – プログラミング – Home

ソケットのエラー(10055:WSAE...
 
通知
すべてクリア

ソケットのエラー(10055:WSAENOBUFS )とは?


TOSHIO
 TOSHIO
(@TOSHIO)
ゲスト
結合: 18年前
投稿: 3
Topic starter  

こんにちは。いつも拝見させていただいています。
Windowsソケットのエラーについて質問させていただきます。
Winsoc2のsend(),connect()メソッド(ブロッキングモードです)にて
プログラム稼動から7日間後位にERROR=10055:WSAENOBUFSが発生します。
意味は、「システムのバッファ領域が不足しているか、またはキューが一杯なため、ソ
ケット操作を実行できませんでした。」と言うもののようです。

環境は、
Windows XP(SP1 ,SP2)
Winsock2使用
MFC 7.1で開発
実装メモリ:512KB
ソケットはプログラム内で2つ作成し、TCP/IPとUDPを同時に使用しています。
エラーが発生するのはTCP/IPソケットで、UDPは動作しています。

質問は2つあります
1.この時のシステムバッファとは何処を指すのでしょうか?
 タスクマネージャやパフォーマンスで確認できるものなのでしょうか?
2.非ブロッキングにすれば発生しない?
 非ブロッキングモードにすれば10055のエラーは発生しないでしょうか?
 (現在確認中)
 それでもシステムバッファ不足問題は潜んでいるように思えます。
 
以上、宜しくお願いいたします。


引用解決済
トピックタグ
kure
 kure
(@kure)
ゲスト
結合: 19年前
投稿: 48
 

KBに該当しそうな項目がありました。

KB196271 : 5000 を超える番号の TCP ポートから接続しようとすると 'WSAENOBUFS
(10055)' エラーが表示される

http://support.microsoft.com/kb/196271/ja

これが原因かどうかわかりませんが
該当するようでしたら対策が必要かと。

@はsetsockoptでSO_SNDBUFを適切な値に設定すれば直るかもしれませんね。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました