我在一个项目中使用RCF进行进程间通信。在RCF中有创建双向通道的方法吗?我将在两个进程中都运行服务器和客户端。我用Win32NamedPipes实现了一种通信方式,这里是服务器
int main()
{
MyServiceImpl myServiceImpl;
RCF::RcfServer server;//(RCF::TcpEndpoint("0.0.0.0", 50001));
server.addServerTransport(boost::shared_ptr<RCF::I_ServerTransport>(new RCF::Win32NamedPipeServerTransport(("rcfchannel"))));
server.bind<MyService>(myServiceImpl);
server.bind<MyService>(myServiceImpl);
server.start();
server.waitForStopEvent();
return 0;
}其中MyService是它正在实现的服务
Client.cpp
int main()
{
try
{
std::vector<std::string> v;
v.push_back("one");
v.push_back("two");
v.push_back("three");
std::cout << "Before:\n";
std::copy(
v.begin(),
v.end(),
std::ostream_iterator<std::string>(std::cout, "\n"));
RcfClient<MyService>* m_service = new RcfClient<MyService>(RCF::Win32NamedPipeEndpoint("rcfchannel"));
m_service->reverse(v);
std::cout << "\nAfter:\n";
std::copy(
v.begin(),
v.end(),
std::ostream_iterator<std::string>(std::cout, "\n"));
}
catch(const std::exception &e)
{
std::cout << "Caught exception:\n";
std::cout << "Type: " << typeid(e).name() << "\n";
std::cout << "What: " << e.what() << "\n";
}
return 0;
}假设我有另一个服务"ClientService“在客户端运行。有没有办法把这个服务器转换成客户端?我在RCF中发现了一些convertRCFClienttoSession函数。我没有找到任何这样的例子。
发布于 2010-02-06 00:33:38
this有帮助吗?
https://stackoverflow.com/questions/2208433
复制相似问题