問題タブ [libev]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
657 参照

c++ - libev + ノンブロッキング ソケットはコールバックを継続的に呼び出します

libev + ノンブロッキング ソケットを使用してサーバーにリクエストを送信しています。この同じ接続を介して宛先に将来のリクエストを送信する必要があるため、Keep Alive を使用しています。

動作 プログラムを実行すると、予想どおり、URL とログがコンソールに取得されます。これを行った後、プログラムを終了するために ctrl+c を押さずに待ってください。

イベント ループが将来の応答を待っているため、予想される アプリは開いたままにする必要がありますが、最初の応答の後は何もログに記録しないでください。

実際 のアプリを実行したままにします。30 秒以上経過すると、コンソール ログに同じ応答が何度も何度も記録され始めます。

質問 新しいリクエストが送信されず、新しい応答データが受信されないのに、libev がコールバック (example_cb) を繰り返し呼び出すのはなぜですか? どうすればこれを修正できますか?

編集:コメントからの提案でコードが更新されました