問題タブ [asio]

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 投票する
2 に答える
6161 参照

ssl - このエラー error:140000DB:SSL routines:SSL routines:short read は何を意味しますか

私たちのソフトウェアでは、この警告/エラー メッセージが断続的に表示され続けています。このメッセージがどのように/なぜ表示されるのかわかりません。

HTTP asio ハンドシェイクに失敗しました: エラー:140000DB:SSL ルーチン:SSL ルーチン:短い読み取り

インターネットで検索しましたが、ほとんどの結果は VMware の問題を示していました。私には当てはまりません。

実際にこのエラーが Boost-Asio で使用される OpenSSL によってスローされることが判明するまで。OpenSSL/Asio/Boost のソース コードをダウンロードしましたが、ソースにこのエラー コードが見つかりませんでした。私の質問ですが、このエラーの意味を知っている人はいますか? このエラー メッセージのトリガーは何ですか? 再現性を知るために少し理解したいだけです。そのため、ソフトウェアに穴があれば、ソフトウェアを修正できます。

よろしくお願いします!

参考: http: //ib-krajewski.blogspot.my/2016/03/https-support-for-casablanca-client.html

サーバーによって閉じられた後にboost::asio::ssl::streamをきれいにする方法

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

c++ - すでに破壊されたboost::asio::deadline_timerの発砲を回避する方法

boost::asio::deadline_timer1 つの io_service オブジェクトで複数を使用しています。std::shared_ptrofは、インデックス付きboost::asio::deadline_timerのコンテナーに格納されます。std::map<int, std::shared_ptr<debug_tim>> timers

タイマー ハンドラで、 other を消去しboost::asio::deadline_timerます。ただし、消去されたタイマーは成功エラー コードで起動されることが多いようです。

それを回避する方法はありますか。boost::asio::deadline_timer消去されたものに対応するタイマーハンドラが常にで起動することを期待していOperation canceledます。

何か不足していますか?

動作を再現するコードは次のとおりです

https://wandbox.org/permlink/G0qzYcqauxdqw4i7

boost::asio::deadline_timer::cancel()タイマーを消去する前にも呼び出します。しかし、私は同様の結果を得ました。キャンセルバージョンは次のとおりです。

https://wandbox.org/permlink/uM0yMFufkyn9ipdG

編集

フェリックス、答えてくれてありがとう。挙動は分かりboost::asio::deadline::timer::cancel()ます。の寿命を常に気にする必要がありboost::asio::deadline::timerます。私のプロジェクトの実際のコードでは、「boost::asio::deadline::timer」は、セッション オブジェクトなどの別のオブジェクトのメンバー変数です。そして、タイマー ハンドラでは、オブジェクトにアクセスします。危ないです。

安全なコードの書き方を考えています。std::weak_ptrそして、オブジェクトの寿命をチェックするためにusing を思いつきました。

更新されたコードは次のとおりです。

これは、削除されたオブジェクトへのアクセスを避ける良い方法boost::asio::deadline_timerですか?

編集

私のweak_ptrソリューションはうまく機能します。

すでに破壊されたboost::asio::deadline_timerの発砲を回避する方法を参照 してください