最近学习Icestorm的replicated例子,在本地计算机上面跑通了,但在两台机器上(一台服务器192.168.0.113,一台客户端192.168.0.188),怎么都跑不通。上网求助,大家给的建议是回去好好研究一下简单例子,再试验。
没办法,因为replicate的例子涉及到了sub,pub和icegrid的配置。所以,只好从最基本的Icegrid配置开始玩。在这里写下日志,算是备忘。
第一步:通过阅读readme知道,这个例子只需要client端即可。于是,先用vs2010打开IceGrid文件夹下,simple例子中的IceGrid.simple.client(13kb),编译,连接,运行,生成client.exe文件。
第二步:在服务器上设置配置文件,具体文件改动的配置如下:
-----------------------------Config.client-----------------------------------
#
# The IceGrid locator proxy.
#
Ice.Default.Locator=DemoIceGrid/Locator:default -h 192.168.0.113 -p 4061
-------------------------------Config.grid---------------------------------------
#
# The IceGrid instance name.
#
IceGrid.InstanceName=DemoIceGrid
#
# The IceGrid locator proxy.
#
Ice.Default.Locator=DemoIceGrid/Locator:default -h 192.168.0.113 -p 4061
#
# IceGrid registry configuration.
#
IceGrid.Registry.Client.Endpoints=default -p 4061
IceGrid.Registry.Server.Endpoints=default
IceGrid.Registry.Internal.Endpoints=default
第三步:设置批处理命令
为了避免每次都要打开cmd窗口运行输入命令,我打开记事本,将icegridnode --Ice.Config=config.grid保存为Icegridstar.bat(批处理文件)
同样,将icegridadmin --Ice.Config=config.grid -e "application add 'application.xml'"保存为Icegridadminstar.bat(注意:Ice3.4.2版本中的demo里,当用记事本打开readme时,多了一个"\",在命令运行时要将其去掉,否则会报错)。如下图所示:
第四步:先运行,Icegridstar.bat,再运行Icegridadminstar.bat。
第五步:将这个demo拷贝到客户端。在运行client.exe之前,先保证客户端和服务端在同一网段,并且能够ping通,然后在客户端运行client.exe就好了。
效果如下:
运行客户端,会出现提示,输入t,并且回车,就会在Icegrid的窗口看到这样的结果,如果连续输入,就会连续输出