問題タブ [boost-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.
c++ - 非同期Mysqlコネクタ
CまたはC++アプリケーション内で使用できるMysql用の非同期コネクタはありますか?Boost.Asioで書かれたreactorパターンにプラグインできるものを探しています。
[編集:]スレッドで同期コネクタを実行することはオプションではありません。
language-agnostic - マルチキャストを聞くとどのように傷つきますか?
プライマリ フィードから欠落しているデータを回復するために、取引所から回復フィードを受信しています。
交換は、データが必要な場合にのみ回復フィードをリッスンし、必要なデータを回復したらマルチキャストを終了することを強く推奨しています.
私の質問は、asio を使用していて、必要のないときに NIC から読み取っていない場合、何が害になるのでしょうか? メッセージには連番があるので、カードに「残った」古いメッセージを誤って処理することはありません。
これは本当にアプリケーションに悪影響を及ぼしますか?
c++ - 複数の異なる受け入れソケットが同じ OpenSSL コンテキストを使用する場合、問題はありますか?
同じ OpenSSL コンテキストがいくつかの異なる受け入れソケットで使用されていても問題ありませんか?
特に、2 つの異なるリッスン ソケットで同じ boost::asio::ssl::context を使用しています。
c++ - 奇妙なコール スタック。asio の openssl の使用法に問題があるのでしょうか?
この奇妙な呼び出しスタックがあり、その理由を理解するのに困惑しています。
asio が open ssl の read を呼び出してから、負の戻り値 (-37) を取得しているように思えます。
その後、Asio は memcpy 関数内で使用しようとしているようです。
このコール スタックを引き起こす関数は、このエラーなしで何十万回も使用されます。
まれに、週に1回程度です。
リクエスト ヘッダーのサイズは常に正確に 3 バイトであることに注意してください。
考えられる理由について誰かが光を当てることができますか?
注:boost asio 1.36を使用しています
これは、巨大な「カウント」が原因で memcpy で発生するクラッシュ コール スタック クラッシュです。
c++ - 奇妙なプログラムがハングします。これはデバッグで何を意味しますか?
奇妙なプログラムがハングします。これはデバッグで何を意味しますか?
windbg を取り付けた後、次のことがわかりました。
コール スタック:
c++ - Boost:asio の最適なドキュメント?
ブースト Web サイトで入手できるドキュメントは... 限られています。
私が読んだ限りでは、一般的なコンセンサスは、boost::asio ライブラリに関する優れたドキュメントを見つけるのは難しいということです。
これは本当にそうですか?もしそうなら、なぜですか?
ノート:
- 私はすでに(ブーストではない)Asio Web サイトを見つけました- ドキュメントはブースト Web サイトのものと同じように見えます。
- Boost::asio が新しいことは知っています。言い訳ではなく解決策を探しています。
編集:
- Boost:asio の作者 (Christopher Kohlhoff) によって、TR2 の標準ライブラリにネットワーク ライブラリを追加する提案があります。boost:asio のドキュメントではありませんが、TR2 提案のベースとして使用しています。著者はこの文書により多くの努力を払ったので、リファレンスとしてではなくても、少なくとも概要としては多少役立つことがわかりました。
c++ - ブーストasioでソケットをブロックする際にタイムアウトを設定するには?
保留中の操作を (切断せずに) キャンセルする方法、またはブースト ライブラリ関数のタイムアウトを設定する方法はありますか?
つまり、boost asio でソケットをブロックする際にタイムアウトを設定したいですか?
socket.read_some(boost::asio::buffer(pData, maxSize), error_);
例: ソケットからいくつか読み取りたいが、10 秒経過したらエラーを発生させたい。
c++ - ブーストasioでSO_RCVTIMEOおよびSO_SNDTIMEOソケットオプションを設定できますか?
ブーストasioでSO_RCVTIMEOおよびSO_SNDTIMEOソケットオプションを設定できますか?
もしそうなら、どのように?
代わりにタイマーを使用できることは知っていますが、特にこれらのソケットオプションについて知りたいです。
c++ - 複数のソースからのマルチキャストの再構成を処理する「いい」方法はありますか?
私は現在、既存のプロプライエタリなソケット ラッパー コードを修正して、boost asio を使用し、重労働の一部を処理できるようにしています。おそらく、既存のコードの中で最も複雑な領域は、マルチキャスト処理コードです。このコードにより、中間層サーバー (1 つのシステムに多数存在する可能性があります) がクライアント ボックスにマルチキャストを送信できるようになり、クライアント ボックスはこれらを使用してシステムのユーザーに更新を提示します。
コードが複雑でエラーが発生しやすい理由は、多くの未加工のバッファを使用して、マルチキャスト ストリームを元の場所に従って再構成するためです。Boost.Asio でも同じ問題に対処する必要があるようです。そのため、行き詰まる前に、他の人がこの状況にどのように対処したかを聞いてみる価値があると思いました。
非常に一般的なユースケースのようです。私が今持っているようなコードなしでこの仕事をするのに役立つものはありますか? または、この種の作業を実行できる確立された C++ テンプレート (Boost またはその他) はありますか?
明らかに、自分で物事を簡単にし、未加工の配列の代わりに STL コンテナーを使用してパケットをバッファーに入れることができますが、このコードは非常に高性能である必要があります。大規模なインストールでは、膨大な数のパケットが飛び交うため、可能な限りリアルタイムに応答する必要があります。
この件についてご意見をお寄せいただきありがとうございます。
ジェイミー
c++ - Asio ライブラリでデッドロックを検出するには?
boost::asio ライブラリにはほとんど問題がありません。私のアプリはデータを非同期に受信して処理し、スレッドを作成してそれぞれで io_service.run() を実行します。
何度も、私のアプリケーションは、私のプログラムが生きているかどうかをチェックするいくつかのスーパーバイザーアプリケーションから(Windowsメッセージングシステム全体で)メッセージを受け取ります。アプリケーションが応答しない場合は、再起動されます。ここで注意が必要なのは、スレッドが実行中でデッドロックしていないことを確認することです。次のように、ハンドラーを io_service に投稿できます。
ただし、このメソッドは 1 つのスレッドにのみ影響します。すべてのスレッドが実行中で、デッドロックしていないことを確認するにはどうすればよいですか?