ICE专题:在客户端中如何定位服务器(即如何寻找代理)

ICE专题:在客户端中如何定位服务器(即如何寻找代理)

(2012-07-23 19:27:14)
标签:

杂谈

分类: ICE学习笔记

D.2 端点
纲要
endpoint : endpoint
描述
端点列表由一个或多个用冒号(:) 分隔的端点组成。端点的格式如下所
示: protocol option。所支持的协议有tcp、udp、ssl,以及
default。如果使用了default,它会被Ice.Default.Protocol 属性的值替
代。如果端点的格式有问题,或者指定了未知的协议,应用会收到
Ice::EndpointParseException。
只有安装了IceSSL 插件,才能使用ssl 协议。
各个协议及其所支持的选项将在下面描述。
TCP 端点
纲要
tcp -h host -p port -t timeout -z
描述
tcp 端点支持以下选项:
选项描述客户语义服务器语义
-h host 指定端点的主机名
或IP 地址。如果
没有指定,将使用
Ice.Default.Hos
t 的值。
确定要连接到的主
机名或IP 地址。
确定对象适配器用
于侦听连接的网络
接口,以及在适配
器所创建的代理中
向外公布的主机
名。
-p port 指定端点的端口
号。
确定要连接到的端
口( 必须指定)。
如果没有指定这个
选项,或是port 为
零,端口将由操作
系统选择。
932 代理与端点

以上是基于TCP协议的,关于UDP,SSL协议的也差不多
我在我的聊天程序中连接LAN中一台服务器的代码:
#include <Ice/Ice.h>
#include <Printer.h>

using namespace std;
using namespace Demo;

int main(int argc, char * argv[])
{
int status = 0;
char strtemp[100];//聊天内容
char clientname[20];//客户名
char chattmp[130];
Ice::CommunicatorPtr ic;
try {
ic = Ice::initialize(argc, argv);

Ice::ObjectPrx base = ic->stringToProxy("SimplePrinter16:default -h 192.168.1.16 -p 9600");
//创建一个Printer的代理(Printer即为客户端与服务器端的接口),利用checkedCast(base)检查代理是否存在
PrinterPrx printer = PrinterPrx::checkedCast(base);
if (!printer)
{
throw "Invalid proxy";//代理不存在
}
else
{
printf("请输入您的ID:");
cin >> clientname;
}

while ( 1 )
{
cin >> strtemp;//输入聊天内容
if ( strcmp( strtemp,"q") == 0 )
{
break;//退出聊天
}
//strcat( chattmp, clientname );
strcpy( chattmp, clientname );
strcat( chattmp, " say: " );
strcat( chattmp, strtemp );
printer->printString(chattmp);
}
//发给服务器的退出消息
printer->printString(clientname);
printer->printString("已退出!");
cout << "成功退出!" << endl;
} catch (const Ice::Exception & ex) {
cerr << ex << endl;
status = 1;
} catch (const char * msg) {
cerr << msg << endl;
status = 1;
}
if (ic) {
try {
ic->destroy();
} catch (const Ice::Exception & ex) {
cerr << ex << endl;
status = 1;
}
}
return status;
}

引自:http://www.cppblog.com/klsmlzm/archive/2005/12/09/...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值