刚刚在服务端(192.168.0.113)和客户端跑通(192.168.0.188),在这里记录,作为备忘。
第一步:读readme,先用vs2010生成subscriber.exe和publisher.exe,注意,先打开publisher,运行,生成publisher.exe。然后再把subscriber添加工程中,运行,生成subscriber。不知道其他人碰到过下面这个情况没有,我是遇到了。如果单独运行subscriber,会出问题。只有两个项目在同一个workspace里运行,才能生成成功。具体如下图所示:
第二步:配置config.icebox,config.sub,config.pub,config.service。在readme里面说的很清楚,如果要把服务部署到几台机器(Host)上,需要对配置文件进行改动。
Host <P>: publisher
Host <S>: subscriber
Host <I>: IceStorm
用P代替publisher的IP地址,用S代替subscriber的地址,用I代替Icestorm的地址。因为在本例子中,Icestorm和publisher位于同一台机器上。因此。I和P的IP地址相同。
------在config.sub中
TopicManager.Proxy=DemoIceStorm/TopicManager:default -h 192.168.0.113 -p 10000
Clock.Subscriber.Endpoints=tcp -h 192.168.0.188:udp -h 192.168.0.188
------在config.pub中
TopicManager.Proxy=DemoIceStorm/TopicManager:default -h 192.168.0.113 -p 10000
------在config.service中
IceStorm.TopicManager.Endpoints=default -h 192.168.0.113 -p 10000
IceStorm.Publish.Endpoints=tcp -h 192.168.0.113 -p 10001:udp -h 192.168.0.113 -p 10001
-----在config.icebox中
IceBox.ServiceManager.Endpoints=tcp -h 192.168.0.113 -p 9998
第三步:设置批处理文件iceboxstar.bat,并运行。参照我的上一篇文章:Zeroc Ice 3.4.2 c++ demo之Icegrid simple
第四步:先在客户端运行subscriber,再在服务端运行publisher,如果要停止,可以在服务端的cmd中,按ctrl+c。具体运行效果如下: