T
Tony_comm
Unregistered / Unconfirmed
GUEST, unregistred user!
corba 客户端绕过路由器访问服务器的过程。 结果是不成功的,请帮忙看看问题所在。谢谢!
说明:在局域网中试验成功,广域网在主机完全暴露在internet 的环境中时客户端使用下面的参数和
主机进行连接,AppClient.exe -Dvbroker.agent.addr=101.1.1.1 -Dvbroker.agent.port=14000并且是成功的,
当然没有GK和路由器了。
环境:jdk1.3.1_01+windows xp sp2+bcb6+visibroker 4.5 for c++
1、定义IDL文件并且用向导的方式进行接口的实现,并且客户端是用静态的方式进行调用。
//idl
interface Client{
string GetOrderMaster(in boolean metadata);
};
//服务器实现代码
char* ClientImpl::GetOrderMaster(CORBA::Boolean _metadata)
{
Server->Memo1->Lines->Add("CORBA Client Request...");
return "abc123999";
}
//客户端代码
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ShowMessage(client->GetOrderMaster(true));
}
//---------------------------------------------------------------------------
*这几步都是用向导做的,所以系统自动生成的代码就不加了。
2、设置Gatekeeper 的若干属性
//Gatekeeper 属性,我理解应该是对此文件的设置
//gatekeeper.properties 文件
vbroker.gatekeeper.name=myGK
vbroker.orb.exportFirewallPath=true
vbroker.se.exterior.host=192.168.1.83
vbroker.se.exterior.scm.ex-iiop.listener.port=683
vbroker.se.exterior.scm.ex-hiop.listener.port=8088
3、设置AppServer.exe 的服务器属性
//服务器 属性,我理解应该是为Server.exe 设置一个属性文件或以命令行参数的形式带入(这个理解有可能是错的)
//server.ini 文件
vbroker.orb.dynamicLibs=com.inprise.vbroker.firewall.Init
vbroker.se.iiop_tp.firewallPaths=p
vbroker.firewall-path.p=fw,gk
vbroker.firewall.fw.type=TCP
vbroker.firewall.fw.host=101.1.1.1 //internet IP 外部
vbroker.firewall.fw.iiop_port=683
vbroker.firewall.fw.hiop_port=8088
vbroker.firewall.gk.type=PROXY
vbroker.firewall.gk.ior=http://192.168.1.83:8088/GateKeeper.ior
4、运行GK和服务器程序
GK:
gatekeeper //默认为加载当前目录的gatekeeper.properties ,运行正常
服务程序:
//AppServer.exe -ORBpropStorage server.ini
AppServer.exe -Dvbroker.orb.propStorage server.ini
//vbroker.orb.propStorage null 指定包含属性值的属性文件。
//这个用法也不能确定肯定是正确的
5、运行客户程序
AppClient.exe -ORBagentAddr 101.1.1.1 -ORBagentPort 683
//这个用法不能保证完全正确,只是我的理解GateKeeper 与 VisiBroker ORB 通过充当客户端和服务器之间的网关或代理,提供了处理这些基于 OMG CORBA 防火墙规范限制的机制。当某些限制阻止客户端直接连接至服务器时,客户端可选择连接至 GateKeeper,将消息发送至GateKeeper,再由 GateKeeper 将消息转发至服务器。
6、完成。(还是不成功啊)
强调:其中 3,4,5 步的用法我没有找到任何明确的使用方法,所有只能是参考手册的内容去理解。有可能就是这几步的用法是错误的。
网络结构:路由器->GK主机
GK主机(服务器主机,其中运行Server.exe和OSAGENT)它在路由器的里面.
路由器端口映射:683,8088,14000 其中14000 是实验性的打开,理论上好像不需要它也可以。
其中80端口也是开发的,并且HTTP在使用中,映射的方法同样是路由器的“虚拟服务”功能。
说明:在局域网中试验成功,广域网在主机完全暴露在internet 的环境中时客户端使用下面的参数和
主机进行连接,AppClient.exe -Dvbroker.agent.addr=101.1.1.1 -Dvbroker.agent.port=14000并且是成功的,
当然没有GK和路由器了。
环境:jdk1.3.1_01+windows xp sp2+bcb6+visibroker 4.5 for c++
1、定义IDL文件并且用向导的方式进行接口的实现,并且客户端是用静态的方式进行调用。
//idl
interface Client{
string GetOrderMaster(in boolean metadata);
};
//服务器实现代码
char* ClientImpl::GetOrderMaster(CORBA::Boolean _metadata)
{
Server->Memo1->Lines->Add("CORBA Client Request...");
return "abc123999";
}
//客户端代码
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ShowMessage(client->GetOrderMaster(true));
}
//---------------------------------------------------------------------------
*这几步都是用向导做的,所以系统自动生成的代码就不加了。
2、设置Gatekeeper 的若干属性
//Gatekeeper 属性,我理解应该是对此文件的设置
//gatekeeper.properties 文件
vbroker.gatekeeper.name=myGK
vbroker.orb.exportFirewallPath=true
vbroker.se.exterior.host=192.168.1.83
vbroker.se.exterior.scm.ex-iiop.listener.port=683
vbroker.se.exterior.scm.ex-hiop.listener.port=8088
3、设置AppServer.exe 的服务器属性
//服务器 属性,我理解应该是为Server.exe 设置一个属性文件或以命令行参数的形式带入(这个理解有可能是错的)
//server.ini 文件
vbroker.orb.dynamicLibs=com.inprise.vbroker.firewall.Init
vbroker.se.iiop_tp.firewallPaths=p
vbroker.firewall-path.p=fw,gk
vbroker.firewall.fw.type=TCP
vbroker.firewall.fw.host=101.1.1.1 //internet IP 外部
vbroker.firewall.fw.iiop_port=683
vbroker.firewall.fw.hiop_port=8088
vbroker.firewall.gk.type=PROXY
vbroker.firewall.gk.ior=http://192.168.1.83:8088/GateKeeper.ior
4、运行GK和服务器程序
GK:
gatekeeper //默认为加载当前目录的gatekeeper.properties ,运行正常
服务程序:
//AppServer.exe -ORBpropStorage server.ini
AppServer.exe -Dvbroker.orb.propStorage server.ini
//vbroker.orb.propStorage null 指定包含属性值的属性文件。
//这个用法也不能确定肯定是正确的
5、运行客户程序
AppClient.exe -ORBagentAddr 101.1.1.1 -ORBagentPort 683
//这个用法不能保证完全正确,只是我的理解GateKeeper 与 VisiBroker ORB 通过充当客户端和服务器之间的网关或代理,提供了处理这些基于 OMG CORBA 防火墙规范限制的机制。当某些限制阻止客户端直接连接至服务器时,客户端可选择连接至 GateKeeper,将消息发送至GateKeeper,再由 GateKeeper 将消息转发至服务器。
6、完成。(还是不成功啊)
强调:其中 3,4,5 步的用法我没有找到任何明确的使用方法,所有只能是参考手册的内容去理解。有可能就是这几步的用法是错误的。
网络结构:路由器->GK主机
GK主机(服务器主机,其中运行Server.exe和OSAGENT)它在路由器的里面.
路由器端口映射:683,8088,14000 其中14000 是实验性的打开,理论上好像不需要它也可以。
其中80端口也是开发的,并且HTTP在使用中,映射的方法同样是路由器的“虚拟服务”功能。