1

1 つの親 - 多くの子プロセス モデルで IPC に glib イベント ループと glib io チャネルを使用することは可能ですか?

親と子は、互いに「コマンド」を送信できる必要があります。

いくつかのチュートリアルや例を教えてもらえますか?

4

1 に答える 1

4

はい。ただし、それ自体に完全なIPCソリューションが含まれているわけではなく、おそらく、そこにあるすべてのIPC実装と完全に互換性があるわけではありません。親と子の場合、サーバーとクライアントのことですか?通常、ある種のネットワーク接続を開くか、通信用のパイプを作成すると、ファイル記述子が取得されます(これを非表示にする高レベルのライブラリを使用している場合でも)。このファイル記述子をglibに渡してコールバックを取得すると、データを読み取ることができます(または接続が閉じられます)。CORBADBUSなどの一般的なIPCメソッドには、すでにglibが統合されているため、ファイル記述子などを気にする必要はありません。glibイベントループについては、ここで説明します。poll()を直接使用する場合と比較すると、非常に複雑に見えるかもしれませんが、一方で、非常に移植性があります。

基本的な使用法は、g_source_new()を使用してソースを作成し、g_source_attach()を使用してメインコンテキストに追加してから、g_source_add_poll()を使用してファイル記述子をソースに追加することです。

glibをまだ決定していない場合は、 libeventをチェックアウトすることをお勧めします。glibと同じことを行いますが、(IMHO)はるかに使いやすくなっています。また、1000以上の同時クライアントの処理にも大幅に優れています(少なくともLinuxでは、他のオペレーティングシステムはそれをサポートしていない可能性があります)。しかし一方で、それはそれほどポータブルではなく、おそらくかなりposix互換のシステムでのみ動作します。

于 2010-06-30T02:56:15.733 に答える