問題タブ [cpp-netlib]
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++ - 古い C++ コンパイラを使用した cpp netlib
cpp-netlib で c++ 03 コンパイラを使用していますが、インストール時に CMake.txt から次のエラーが発生します。
cpp03 での cpp-netlib のサポートはありませんか? 彼らのドキュメントは、C ++のコンパイラに関連するものを指摘していないようです
c++ - HTTP クライアントのタイムアウト期間 (cpp-netlib) を変更することはできますか?
cpp-netlib (v0.11.0) を使用して HTTP リクエストを送信しています。
HTTP POST リクエストを送信する際のタイムアウト期間を変更できるかどうかを知りたいです。
いくつかの単体テストを実行しています。そのうちの 1 つは、サーバーが実行されていないアドレスに HTTP 要求を送信します。応答から情報を取得しようとすると、約 90 秒後に「操作がタイムアウトしました」というエラーが表示されてタイムアウトになります。
cpp-netlib - basic_request の作成方法オブジェクト (cpp-netlib)
私は cpp-netlib (v0.11.0) を正常に使用しており、HTTP サーバーとハンドラー機能をテストするための単体テストを開発しています。
ハンドラー関数には、次の必要な署名があります。
私ができるようにしたいのは、要求オブジェクトをインスタンス化して、ハンドラーの関数呼び出し演算子を呼び出すことができるようにすることです。しかし、私はそれをコンパイルすることができません。
上記の署名では、request
は の typedef ですbasic_request<Tag>
。
への参照を取るコンストラクターがありますboost::network::uri::uri
。
以下のコードは、clang 3.5 を使用してコンパイルするとエラーが発生します。
私は何を間違っていますか?
c++ - cpp-netlib を既存のブースト パッケージに統合する
cpp-netlib を既存のブースト パッケージに統合して、プログラムで使用しようとしています。
私は単に含めています:
そして、次のように使用しようとしています:
そうしようとすると、リンカーエラーが発生します。
アーキテクチャ x86_64 の未定義のシンボル:
これまでに行ったことは、cpp-netlib をダウンロードし、cmake を使用してビルドすることです。次の 3 つのライブラリが表示されるので、成功したと思います。
したがって、私の質問は、正しいリンクを確保するために、生成した 3 つの静的ライブラリをどこに配置すればよいかということです。ディレクトリ内にいくつかのライブラリファイルが既に表示されています。
これは、正しいリンクを確保するためにライブラリを保持する必要がある場所ですか?
c++ - HTTP POST の遅延はどこから来るのですか?
非同期モードで cpp-netlib を使用して、C++ で Ubuntu 14.04 で Web サービスを開発しています。サービスは、メッセージ本文で HTTP POST を介して送信されたデータに応答する必要があります。1K を超える入力を受信するとパフォーマンスが低下することがわかりました。これを修正したいと考えています。
データが 1K 未満の比較的小さい場合、サーバーはほぼ瞬時にデータを受信します。データが 1K を超える場合、実際のデータの最初のチャンクがコールバックに提示される前に、非同期読み取りコールバック関数が最初に呼び出されてから約 1 秒の遅延があります。最初の遅延の後、後続のチャンクがほぼ瞬時に到着します。
この遅延を解消するにはどうすればよいですか? curl を使用してテスト データを投稿した場合のアーティファクトですか? データを投稿するためのcurlのパフォーマンスを簡単にテストするにはどうすればよいですか?
github で問題を示す最小限のソース コードを見つけることができます。サーバーにデータを投稿するために使用するコマンドは次のとおりです。
その出力の例を次に示します (注釈付き)。
ご覧のとおり、非同期読み取りコールバックが初めて呼び出された後 (およびゼロ バイトのデータを受信した後)、入力の別のチャンクが要求されます。この時点で、この例では 1431387371.536394 から 1431387372.537203 まで、入力が到着する前に 1 秒強の一時停止があります。その間、何が起こっているのですか?その遅延をなくすにはどうすればよいですか?
オンラインでいくつかの調査を行い、いくつかの実験 (cpp-netlib を使用した同期モードと非同期モード (効果なし)、curl と libcurl (効果なし)) を実行しましたが、答えを見つけることができませんでした。
更新: TCP ダンプ
jxh の提案により、サンプル トランザクション中に tcp ダンプを実行しました。
私は tcpdump の経験があまりありませんが、175 バイトがサーバー (HTTP ヘッダー?) に流れ、1 秒強の遅延の後、1206 バイトがサーバーに流れ、その後に 51 バイトのチャンクが続きます。最小限の遅延に続いて、サーバーの応答が続きます。
これは、おそらくカールで、クライアント側で遅延が発生していることを示しています。誰かが理由を知っていますか?
c++ - cpp-netlib が lboost-thread の欠落について不平を言う
私はcpp-netlibを学んでおり、公式Webサイトで提供されている例のクライアントを実行してみました。コードは非常に単純です。
この C++ アプリケーションのメイクファイルは次のとおりです。 CC = g++ -std=c++11
コンパイル後に lboost_thread ライブラリが見つからないというエラーが表示されます。
私のブースト ライブラリ ディレクトリでは、boost_thread ライブラリは次のように表示されます。
このライブラリが見つからないのはなぜですか? リンクを間違えましたか?
c++ - CMake が動作しない cpp-netlib + Boost プログラムをコンパイルする
cpp-netlib サイトから hello world プログラムをコンパイルしようとしています。コードは以下です。
私の CMakeLists.txt ファイルは次のとおりです
ビルドするには、実行します
そして、エラーのある次の出力を取得します
c++ - ファイル「libboost_thread-vc110-mt-gd-1_58.lib」を開く方法 - cpp-netlib?
だから私はC ++のほぼ完全な初心者です。私は一日の大半をcpp-netlibを使用するために必死に試みてきましたが、実際には続行できず、助けていただければ幸いです。
指示に従って開発バージョンをダウンロードしました (ライブラリを使用できるようにするために必要なものだと思います)。ビルドはしていません。指示では、テスト スイートを実行する場合にのみ必要であると指定されているためです。
最新の Boost をダウンロードしてビルドしました (コマンド ラインから)。
サンプル アプリケーションを試すと、「ファイル 'libboost_thread-vc110-mt-gd-1_58.lib を開けません」というリンカ エラーが表示されます。
インクルード ディレクトリとリンカー ディレクトリが設定されました。関連するフォルダー内をのぞきましたが、libboost_thread ファイルのみがすべて VC 120 です。これは、私が理解していることから、別のバージョンの Visual Studio によって生成されたことを意味します。
私は次に何をすべきか本当にわかりません。
役立つ場合は、Visual Studio 2012 を使用しています。
c++ - cpp-netlib の最も単純な例の長いコンパイル時間
Visual Studio 2015 C++ コンパイラ、ブースト 1.59、および cpp-netlib 0.11.2 を使用しています。プリコンパイル済みヘッダーでコンパイルしています。cpp-netlib の最も単純な例のコンパイル時間は 2.5 分以上かかります。これは正常ですか?スピードアップできますか?