Zeroc Ice 发布订阅者之demo Icestorm之clock

刚刚在服务端(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。具体运行效果如下:


 

原文地址:https://www.cnblogs.com/mtcnn/p/9410080.html