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

简介:

最近开始学习ICE,头有点大,900多页的文档看了五百多页还不知CLIENT如何定位SERVER的位置,郁闷的很...昨天毛了直接看文档的最后几页..我晕原来在这里给阐述了...差不多想撞墙

以下是中文文档中关于端点的描述:

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);
/*连接服务器:SimplePrinter16所申请的代理ID,default即为使用默认的协议TCP,-h 192.168.1.16 为服务端所在LAN中的IP地址,-p 9600为端口号*/
  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.cnblogs.com/sgsoft/archive/2007/05/02/734453.html,如需转载请自行联系原作者

相关文章
|
8月前
|
人工智能 搜索推荐 程序员
用 Go 语言轻松构建 MCP 客户端与服务器
本文介绍了如何使用 mcp-go 构建一个完整的 MCP 应用,包括服务端和客户端两部分。 - 服务端支持注册工具(Tool)、资源(Resource)和提示词(Prompt),并可通过 stdio 或 sse 模式对外提供服务; - 客户端通过 stdio 连接服务器,支持初始化、列出服务内容、调用远程工具等操作。
1946 4
|
9月前
|
网络协议 开发者 Python
Socket如何实现客户端和服务器间的通信
通过上述示例,展示了如何使用Python的Socket模块实现基本的客户端和服务器间的通信。Socket提供了一种简单且强大的方式来建立和管理网络连接,适用于各种网络编程应用。理解和掌握Socket编程,可以帮助开发者构建高效、稳定的网络应用程序。
471 10
|
11月前
|
存储 开发工具 git
[Git] 深入理解 Git 的客户端与服务器角色
Git 的核心设计理念是分布式,每个仓库既可以是客户端也可以是服务器。通过 GitHub 远程仓库和本地仓库的协作,Git 实现了高效的版本管理和代码协作。GitHub 作为远程裸仓库,存储项目的完整版本历史并支持多客户端协作;本地仓库则通过 `.git` 文件夹独立管理版本历史,可在离线状态下进行提交、回滚等操作,并通过 `git pull` 和 `git push` 与远程仓库同步。这种分布式特性使得 Git 在代码协作中具备强大的灵活性和可靠性。
[Git] 深入理解 Git 的客户端与服务器角色
|
存储 人工智能 自然语言处理
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
ChatMCP 是一款基于模型上下文协议(MCP)的 AI 聊天客户端,支持多语言和自动化安装。它能够与多种大型语言模型(LLM)如 OpenAI、Claude 和 OLLama 等进行交互,具备自动化安装 MCP 服务器、SSE 传输支持、自动选择服务器、聊天记录管理等功能。
2638 16
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
|
开发框架 .NET C#
在 ASP.NET Core 中创建 gRPC 客户端和服务器
本文介绍了如何使用 gRPC 框架搭建一个简单的“Hello World”示例。首先创建了一个名为 GrpcDemo 的解决方案,其中包含一个 gRPC 服务端项目 GrpcServer 和一个客户端项目 GrpcClient。服务端通过定义 `greeter.proto` 文件中的服务和消息类型,实现了一个简单的问候服务 `GreeterService`。客户端则通过 gRPC 客户端库连接到服务端并调用其 `SayHello` 方法,展示了 gRPC 在 C# 中的基本使用方法。
276 5
在 ASP.NET Core 中创建 gRPC 客户端和服务器
|
安全 区块链 数据库
|
弹性计算 应用服务中间件 网络安全
ECS服务器使用:SSL证书安装、配置和问题定位指南
本文简要介绍了SSL证书的生成与部署方法,包括使用OpenSSL生成自签名证书和从CA获取证书的步骤,以及在Apache和Nginx服务器上的配置方法。此外,还提供了测试证书是否生效的方法和常见问题的解决策略,帮助确保证书正确安装并解决调试过程中可能遇到的问题。
1209 0
|
2月前
|
弹性计算 运维 安全
阿里云轻量应用服务器与云服务器ECS啥区别?新手帮助教程
阿里云轻量应用服务器适合个人开发者搭建博客、测试环境等低流量场景,操作简单、成本低;ECS适用于企业级高负载业务,功能强大、灵活可扩展。二者在性能、网络、镜像及运维管理上差异显著,用户应根据实际需求选择。
271 10
|
2月前
|
运维 安全 Ubuntu
阿里云渠道商:服务器操作系统怎么选?
阿里云提供丰富操作系统镜像,涵盖Windows与主流Linux发行版。选型需综合技术兼容性、运维成本、安全稳定等因素。推荐Alibaba Cloud Linux、Ubuntu等用于Web与容器场景,Windows Server支撑.NET应用。建议优先选用LTS版本并进行测试验证,通过标准化镜像管理提升部署效率与一致性。
|
2月前
|
弹性计算 ice
阿里云4核8g服务器多少钱一年?1个月和1小时价格,省钱购买方法分享
阿里云4核8G服务器价格因实例类型而异,经济型e实例约159元/月,计算型c9i约371元/月,按小时计费最低0.45元。实际购买享折扣,1年最高可省至1578元,附主流ECS实例及CPU型号参考。
412 8