2

我想知道是否有可能创建一个 Thrift 服务器来监听标准输入并将答案写入标准输出。我在 Thrift 中找到了 TFDTransport。

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

我不确定如何创建一个 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 回答
1

If you environment is Windows: There is an implementations for Anon Pipes available in C++, which does exactly that. See https://issues.apache.org/jira/browse/THRIFT-1558

于 2013-04-16T00:19:59.550 回答