2

stdin をリッスンし、stdout に回答を書き込む Thrift サーバーを作成することは可能かどうか疑問に思います。Thrift で TFDTransport を見つけました。

int fd = fgetc( stdin );
shared_ptr<TFDTransport> innerTransport(new TFDTransport(fd));
shared_ptr<TBufferedTransport> transport(new TBufferedTransport(innerTransport));

よくわからないのは、stdin をリッスンして stdout に回答を書き込む Thrift サーバーを作成する方法です。新しいサーバーを初期化する標準的な方法は次のとおりです。

shared_ptr<TJSONProtocol> protocol(new TJSONProtocol(transport));
TSimpleServer server(processor,
                   serverTransport,
                   transportFactory,
                   protocolFactory);

しかし、この時点で、私はどのように進歩するかわかりません。Thriftでもstdin/stdoutでサーバーを作成できますか?もしそうなら、そのようなサーバーを作成する方法は?

4

2 に答える 2

1

おそらく、独自のSTDIN/OUTクライアントおよびサーバートランスポートを作成する必要があります。サーバーが親プロセスであり、クライアントが子プロセスである場合は簡単ですが、その逆の方がはるかに興味深いものです。それは本質的にある種のマルチ言語プラグインフレームワークを可能にするでしょう。

私は実際、同じマシンのIPCについてもこれに非常に興味を持っています。

于 2012-10-15T19:38:12.873 に答える