我想知道是否可以创建一个Thrift服务器来监听stdin并将答案写入stdout。我在Thrift找到了TFDTransport。
int fd = fgetc( stdin );
shared_ptr<TFDTransport> innerTransport(new TFDTransport(fd));
shared_ptr<TBufferedTransport> transport(new TBufferedTransport(innerTransport));
我不确定如何创建一个Thrift服务器,它将监听stdin并写入stdout的答案。以下是初始化新服务器的标准方法:
shared_ptr<TJSONProtocol> protocol(new TJSONProtocol(transport));
TSimpleServer server(processor,
serverTransport,
transportFactory,
protocolFactory);
但此时我不确定如何进步。是否可以使用Thrift在stdin / stdout上创建服务器,如果可以,如何创建这样的服务器?
答案 0 :(得分:1)
您可能需要创建自己的STDIN / OUT客户端和服务器传输。 如果服务器是父进程而客户端是子进程,那将很容易,但反过来更有趣。它本质上允许多种插件框架。
我对同一机器IPC实际上非常感兴趣。
答案 1 :(得分:1)
如果你的环境是Windows:C ++中有一个Anon Pipes的实现,它就是这样做的。见https://issues.apache.org/jira/browse/THRIFT-1558