私は在庫データを受け取り、ソケット(サーバーとして動作する)を介して別のアプリケーションに転送するC++アプリケーションを持っています。小さい秒、私はエラーメッセージ高周波データに対処するには?
「なしバッファスペースで見つかった後
実際WSASend
関数は、エラーコード10055と戻る。システムは、十分なバッファ領域を欠いているため、ソケット操作を実行できませんでしまたはキューが満杯だったためです。
数時間で1日のデータ(約130 MB)を受け取っているので、市場の時間の後にアプリケーションを実行したときに問題が発生します(これは比較的大きいと思います)。 私は堅牢性テスト。
私はsetsockopt
機能を使用して送信バッファSO_SNDBUFを増やそうとしましたが、それでも同じ問題がありました。 この問題を解決するにはどうすればよいですか?これは受信バッファに関連していますか?
送信詳細:私は重複ソケット
を使用してsendメソッドを呼び出し、各完全なメッセージに対して
EDIT: は、誰かがC++での高頻度データを処理するための一般的なガイドラインを与えることができますか?
どのように各送信が完了するのを待つのですか?IOCP通知、またはOVERLAPPED構造のイベント経由 –
私はこれが問題だと思います:) send関数が完了するまで待ちません。 –
良いもの。あなたのためにそれを修正することを願っています。 –