問題タブ [poco-libraries]

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 に答える
1497 参照

c++ - Poco C++ ライブラリにはクロスプラットフォームの WaitForMultipleObjects() アナログがありますか?

この質問に基づいて、Poco::NamedEvent を使用しますが、複数のイベント (win32 WaitForMultipleObjects() など) を待つ必要があります。

ポコにそんなのありますか?(ドキュメントを検索してもあまり得られませんが、おそらく正しい検索を使用していません)

0 投票する
3 に答える
4264 参照

c++ - ソケットselect()突然の切断の処理

私は現在、ソケットselect()呼び出しに関連して作成したプロキシサーバーのバグを修正しようとしています。私は(SocketReactorを使用して)Poco C ++ライブラリを使用しており、問題は実際にはバグである可能性のあるPocoコードにありますが、まだ確認を受け取っていません。

何が起こっているのかというと、接続が突然終了したときはいつでも、ソケットselect()呼び出しがすぐに戻ってきます。これは、私が意図していることだと思いますか?とにかく、読み取り可能なファイル記述子のセット内の切断されたすべてのソケットを返しますが、問題は、Pocoがコードを配置する場所であるonReadableイベントハンドラーを起動しようとすると、「ソケットが接続されていません」という例外がスローされることです。これに対処します。例外がサイレントにキャッチされ、onReadableイベントが発生しない場合、select()呼び出しはすぐに戻り続け、SocketReactorで無限ループが発生します。

Pocoコードを変更して、例外をサイレントにキャッチするのではなく、onDisconnectedなどと呼ばれる新しいイベントを発生させて、クリーンアップを実行できるようにすることを検討していました。

私の質問は、select()呼び出しを使用してソケットが異常に閉じたかどうかを判断するための洗練された方法はありますか?例外メッセージを使用してこれがいつ発生したかを判断することを考えていましたが、これは私には汚いようです。

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

c++ - PocoSocketReactorのスケーラビリティ

私はPocoを使用してLinux用のプロキシサーバーを作成しましたが、それ以来、TCP/IPサーバーのスケーラビリティを実現するためのさまざまなアプローチについて読んでいます。同時接続の上限が約250の永続的な接続(HTTPトラフィックではない)を処理するサーバーが必要になります。通常、各接続は約5〜10Kb /秒を使用し、トラフィックを処理する際に可能な限り最高の遅延が重要です。

現状では、select()呼び出しを中心にReactorモデルを使用するPoco SocketReactorを使用していますが、C10K問題やその他のリソースについて読んだことがあり、このアプローチを使用することはできないようです。最高のアイデア。poco libsにはpoll()を使用するテスト実装があると思いますので、これは物事を改善するためのオプションになる可能性があります。

Poco SocketReactorを使用した経験のある人はいますか?また、私のシナリオでどれだけ拡張できるか考えていますか?うまく拡張できない場合は、代替案の提案をいただければ幸いです。

0 投票する
2 に答える
1539 参照

c++ - C++pocoとHTTPSStreamFactoryでエラーが発生しました

XMLリソースにアクセスするためのC++アプリを作成しようとしています。httpを使用すると、コードは正常に機能します。ドキュメントからわかるように、httpsが機能するために必要なのは、sslがインストールされていること(はい、devエディションがインストールされていること)を確認し、StreamFactoryをHTTPSStreamFactoryに変更することだけです。

動作するコードは次のとおりです。

Poco :: Net :: HTTPSStreamFactory :: registerFactory();に失敗するコードは次のとおりです。Poco :: URI uri(argv [1]);

HTTPSStreamFactoryを使用してリクエストを行うと、次のエラーメッセージが表示されます。

NULLポインター:_pInstance[ファイル"/home/chpick/poco-1.3.6p2/Util/include/Poco/Util/Application.h"、行422]

Application.hを添付しました

どんな助けでも素晴らしいでしょう。ありがとう

0 投票する
2 に答える
1568 参照

c++ - プロセスの C++ クロスプラットフォーム: POCO lib は良いですか? 他の選択肢は?

プロセスの開始、停止、および標準出力の取得に、クロスプラットフォームの C++ ライブラリを使用したいと考えています。C++ POCO ライブラリを見つけて使用したいのですが、これは良いですか?

最良の代替手段は何ですか? 私はBoostを使用しており、Boost Processがありますが、公式リリースの一部ではなく、AFAIKではすぐにはリリースされません(開発は2008年に停止しました)。このPOCO libまたはその他について少し教えてもらえますか?

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

c++ - Poco C ++ライブラリは位置コマンドライン引数をサポートしていますか?

Pocoの Poco::Util::Applicationクラスおよび関連する位置コマンドライン引数をサポートする方法がわかりませんPoco::Util::OptionProcessor。位置引数は、コマンドライン上の名前のない引数であり、他のすべてのオプションの後に続きます。

この例では、filename.binは定位置引数であり、名前はありませんが、すべての名前付き引数の後の最初の定位置引数です。Boostのprogram_optionsはこれをサポートしており、Pocoがサポートしていないとは信じがたいですが、ソースとドキュメントを考えると、それをサポートする方法を見つけることができません。

Pocoはこれをサポートしていますか?

0 投票する
2 に答える
26869 参照

c++ - makefile を使用したライブラリへの C++ リンク (newbe)

C++ プロジェクトで非標準ライブラリを使用する方法を理解しようとしています。いくつかの質問を聞きたいんです。

POCO ライブラリを使いたいとしましょう。そこで、ダウンロードして make を使ってビルド (静的ビルド) しました。今、たくさんの .o ファイルと .h ファイルがあります。別のディレクトリに Path.h ファイルと Path.o ファイルがあります。

今、私は自分のコードでこのモジュールを使用したいと考えています。#include "Poco/Path.h" を使用してファイルをインクルードします。makefile を変更して Path.o をターゲットに追加する必要がありますか?

標準ライブラリを使用するとどうなりますか? それらはヘッダーファイルでのみ利用できますか? テンプレート コードをプリコンパイルできないことはわかっています。残りはどうですか?

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

c++ - セッターとスレッド

C++ のスレッドに問題があります。

私は 2 つのスレッドを実行しています。1 つはクライアントを実行し、もう 1 つはリスナーとして機能しています。リスナー スレッドはshutdown()、次のことだけを行うメソッドを呼び出します。

shutdown_は揮発性として設定され、リスナー スレッドはメソッドを呼び出す唯一のスレッドであり、他のスレッドがモード ( )shutdown()にある間のみアクセスされます。wait()Poco synchronizedObject wait()

何らかの理由でcout「0」が出力され続け、最初に(xcodeを使用している間)、行shutdown_=trueが何もしないという警告が表示されました。この警告は、数回のコンパイル後に消えました。

Mutex ロックを使用して、回線の前後でロックとロック解除を試みましたが、効果がありませんでした。私は関数をshutDown()完全に削除してしまい、それを使用する代わりに、shutDown_パブリックに変更し、次のようにリスナースレッドから直接アクセスしました:

それはうまくいきます。問題が何であったのか、将来それを回避する方法がわかりません。

ありがとう、

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

c++ - Poco::Any の std::map を反復できません

Poco::Any の std::map を反復処理してストリームに出力しようとしていますが、コンパイラ エラーが発生します。私のコードは以下の通りです:

その行に 2 つのエラー:

アップデート:

テンプレートはコンパイル時ですが、 type() は実行時であるため機能しないことを理解しています。下線を引いてくれてありがとう。また、DynamicAny は、DynamicAnyHolder 実装を持つ型のみを受け入れるため、理想的ではありません。型に課したい唯一のルールは、それらが << オーバーロードされていることです。

以下は私が現在行っていることで、ある程度は機能しますが、既知のタイプのみをダンプします。これは私が求めているものではありません。

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

installation - VS2010 に Poco ライブラリをインストールする

VS2010 で Poco ライブラリを使用しようとしていますが、成功していません。

poco-1.4.1p1.zip をコンピューターにダウンロードして解凍し、Program Files フォルダーに移動しました。

その後、このフォルダーをプロジェクトの追加のインクルード ディレクトリに追加しようとしました (これは [プロパティ] (プロジェクトを右クリック) -> [構成プロパティ] -> [C\C++] -> [一般] -> [追加のインクルード ディレクトリ] にあります)。

これは、私のプログラムの行が

「Poco/Net/StreamSocket.h」をインクルード

まだエラーとしてマークされています

致命的なエラー C1083: インクルード ファイルを開けません: 'Poco/Net/StreamSocket.h': そのようなファイルまたはディレクトリはありません

VS2010 に外部ライブラリを追加しようとするのはこれが初めてです。MSDN ドキュメントと POCO ドキュメント サイトでヘルプを取得しようとしましたが、成功しませんでした。

また、検索で一度もシステム変数のようなものに出くわしたことはありません。どういう意味ですか?

最後に、Poco ライブラリの実行を手伝ってもらえますか?

前もってありがとう、Eyal。