1.编写ice接口
#ifndef SIMPLE_ICE
#define SIMPLE_ICE
module DiyModule{
interface CAbsPrinter{
void DispStr(string s);
int Calc(int num);
};
};
#endif
2.编写服务器,实现接口类
#include <Ice/Ice.h>
#include "Printer.h"
using namespace DiyModule;
#include <iostream>
using namespace std;
class CPrinter : public CAbsPrinter{
public:
virtual void DispStr(const string& msg, const Ice::Current& curr){
cout << msg << endl;
}
virtual int Calc(int num, const Ice::Current& curr){
return num*10;
}
};
int main(int argc, char* argv[])
{
int iStatus = 0;//程序的退出时的状态,就是否成功执行
Ice::CommunicatorPtr spCommunicator;//来包含Ice run time 的主句柄
cout << "~~~~~~~~~~服务器开始启动~~~~~~~~~~~~~" << endl;
try{
spCommunicator = Ice::initialize(argc, argv);
Ice::ObjectAdapterPtr pAdapter= spCommunicator->createObjectAdapterWithEndpoints("PrinterAdapter", "default -p 10000");
Ice::ObjectPtr pObj = new CPrinter;
pAdapter->add(pObj, spCommunicator->stringToIdentity("SimplePrinter"));
pAdapter->activate();
spCommunicator->waitForShutdown();
}
catch (const Ice::Exception& e){
cerr << e << endl;
iStatus = 1;
}
catch (const char* msg) {
cerr <<