11

どのライブラリがクロスプラットフォームのサービス/デーモンの開発を容易にするのだろうか?(C / C ++)

対象としているのは、Windows、Linux、OSXです。要件:ネットワーク操作とシリアルポート通信。

また、基本的なサンプルサービスアプリケーションがあると便利です。

4

5 に答える 5

8

Qtに関しては、 qt-serviceを試してみてください。

于 2010-05-12T09:50:10.803 に答える
6

Linuxのデーモンは、実際には端末から切断されて実行される単なるプロセスです。Windowsでは、サービスはサービス管理APIを使用して制御できるものですが、ここでも基本的には切断されたプロセスにすぎません。切断はさておき、デーモンとサーバーには、タスク間であまり共通点がありません。たとえば、マルチスレッドである、非同期である、またはネットワークI/Oを実行する必要はありません。それを考えると、クロスプラットフォームライブラリが何をするかを理解するのはちょっと難しいです。

于 2010-04-18T20:50:03.150 に答える
5

POCOをご覧ください。何をしているのかによっては、Boostよりもはるかに少ない作業で大量の作業を行うための機能が備わっている場合があります。

個人的にはあまり気にしませんが、 ACEの義務的な言及。

于 2010-04-18T21:03:21.877 に答える
3

Boostには、スレッド化ネットワークI/Oに関して必要なもののほとんどが含まれている可能性があります。

Qtも良い選択肢だと思うかもしれません。また、スレッド化ライブラリとネットワークライブラリがあり、実行ループを使用したイベント駆動型プログラミングモデルの使用と理解がはるかに簡単です。Qtのシグナル/スロットシステムは非常に使いやすく、ネットワークデーモン/サービスに最適です(Boostにはシグナル/スロットシステムも含まれていますが、使用が難しく、イベントループが含まれていません。何らかのイベントを使用して独自にロールする必要があります図書館)。クロスプラットフォームライブラリとして、Qtは、プロセスやファイルシステムなどのUnix(OS XおよびLinux)とWindowsのメンタルモデルを橋渡しする際の問題の多くを処理できます。

ユニットテストについては、 googletestと呼ばれるGoogleのC ++ユニットテストライブラリに非常に満足しています(ただし、BoostとQtの両方にユニットテストシステムが組み込まれています)。指定したすべてのプラットフォームで実行されます。私はクロスプラットフォームのQtプロジェクトでgoogletestを使って多くの作業を行い、非常に満足のいくものであることがわかりました。

于 2010-04-18T20:51:00.987 に答える
0

ASIOの非ブーストバージョンで大きなライブラリを見つけました。すべてのBoostライブラリは必要ありませんが、この小さなヘッダーのみが必要です。十分に文書化されたライブラリhttp://think-async.com/

例として、日中のサーバークライアントシステムは非常に数行のコードで実装されています。それを見てください。

(ブースト化されていないバージョンを確認することを忘れないでください)

于 2012-03-26T20:17:42.510 に答える