18

Unix デーモン ( myUnixdと呼びましょう) を実装し、ユーザーがコマンド ライン経由でこのデーモンと対話できるようにしたいと考えています。次に例を示します。

myUnixd --help # will display help information
myUnixd --show # will show some data (the's deamon should be doing the work)

私の質問は次のとおりです。どうすればデーモンと通信できますか? Unix ドメインソケットについて考えていました。誰かがこれを行う正しい方法を教えてもらえますか?

ありがとう。

4

3 に答える 3

10

Berkeley ソケットを使用します。具体的には、「UNIX ドメイン ソケット」(別名「ローカル ドメイン ソケット」とも呼ばれる) を作成できます。これにより、テキスト ファイルのようなものが作成されます。テキスト ファイルに書き込み、デーモンにテキストを送信し、そこから読み取り、テキストを受信します。デーモンから. いくつかの関数呼び出しでこれを実装できます.

より高度なものが必要な場合は、DBusを使用することもできます。これは、より洗練されたインターフェイスを提供しますが、習得がより複雑です。

于 2011-07-17T01:37:40.487 に答える
1

telnet を使用してデーモンと通信する場合は、tcp ソケットを使用します。

于 2011-07-17T00:39:55.500 に答える
0

このようなクライアント/サーバー通信には、リモート プロシージャ コール (RPC)を使用することもできます。一緒に使用できるさまざまなタイプのメッセージ (プロトコル) があり、そのうちの 1 つが JSON です。

JSON-RPCプロトコルは、このようなタスクに広く受け入れられています。ソフトウェアに組み込むさまざまなツールやライブラリを見つけることができます。Google で簡単に検索すると、この C ライブラリが表示されます。このようなライブラリの利点は、すべてのリモート関数呼び出しを定義する JSON 仕様ファイルから、すぐにコードで使用できるクライアントおよび/またはサーバースタブを作成することです。

リスナーとして、他の応答状態としてソケットを使用するか、 microhttpd (およびクライアント用のlibcurl ) のような組み込み HTTP サーバーを使用できます。再利用するだけの例がたくさんあります。HTTP を使用すると、クライアントをプロキシの背後で実行することもできます。

于 2019-01-30T11:43:04.843 に答える