ICE之C/S通信原理
/*
在ICE文档中只需要声明module名称,接口名称,方法名称
*/ #ifndef SIMPLE_ICE
#define SIMPLE_ICE module Demo{ //module名称
interface Printer //接口名称
{
void printString(string s); //方法名称 }; }; #endif
s端示例:
try{
ic = Ice.Util.initalize(ref args);
Ice.ObjectAdapter adapter = ic.createObjectAdapterwithEndpoints("SimplePrintAdapter",
"default -p 10000");
Ice.Object obj = new Printerl(); //Printerl类继承了Printer
adapter.add(obj, ic.stringToldentity("SimplePrinter"));
adapter.activate();
ic.waitForShutdown();
}catch (Exception e){
Console.Error.WriterLine(e);
status =; }
功能:
1、创建一个对象适配器(ObjectAdapter)对象IOAdapter,并初始化之;
2、参数“SimplePrinterAdapter”:表示适配器的名字;
3、参数“default -p 10000”:表示适配器使用缺省协议(TCP/IP)在端口10000处监听到来的请求;
4、服务器配置完成;
5、为Printerl接口创建一个servant;
6、激活适配器,以使服务器开始处理来自c端的请求;
7、挂起发出调用的线程,知道服务器实现终止为止;
8、或者是通过发出一个调用关闭运行(run time)的指令来使服务器终止;
C端:
try{
ic = Ice.Util.initialize(ref args); //获取远程对象代理
Ice.ObjectPrx obj= ic.stringToProxy("SimplePrinter:default -p 10000"); //创建一个代理对象,并用通信器的stringToProxy()方法初始化之;
PrinterPrx printer = PrinterPrxHelper.checkCast(obj); //调用服务鉴别函数
if(printer == NULL)
{
throw new ApplicationException("Invalid proxy"); printer.printString("Hello World!!"); //成功则远程调用方法
}catch (Exception e){
Console.Error.WriteLine(e);
status = ;
}
}
功能:
1、获取远程对象代理
2、创建一个代理对象,并用通信器的stringToProxy()方法初始化之;
3、提供参数:“SimplePrinter:default -p 10000”
4、调用服务鉴别函数,如果不成功则抛出异常信息“Invalid proxy”;成功则
远程调用方法:printer.printString("hello world";)
ICE之C/S通信原理的更多相关文章
- 基于web的IM软件通信原理分析
关于IM(InstantMessaging)即时通信类软件(如微信,QQ),大多数都是桌面应用程序或者native应用较为流行,而网上关于原生IM或桌面IM软件类的通信原理介绍也较多,此处不再赘述.而 ...
- Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
转载地址:http://blog.csdn.net/mad1989/article/details/9147661 ZERO.前言 有关通信原理内容是在网上或百科整理得到,代码部分为本人所写,如果不当 ...
- SSL 通信原理及Tomcat SSL 配置
SSL 通信原理及Tomcat SSL 双向配置 目录1 参考资料 .................................................................. ...
- Java 下 SSL 通信原理及实例
有关SSL的原理和介绍在网上已经有不少,对于Java下使用keytool生成证书,配置SSL通信的教程也非常多.但如果我们不能够亲自动手做一个SSL Sever和SSL Client,可能就永远也不能 ...
- AIDL通信原理
AIDL (Android Interface Definition Language),通过定义通信接口来实现进程间通信.这是Google提供的一种在安卓应用进程间通信的工具.所以要了解AIDL的通 ...
- Java基础知识强化之网络编程笔记02:Socket通信原理图解
1. Socket (1)Socket套接字 网络上具有唯一标识的IP地址和端口号组合在一起才能构成唯一能识别的标识符套接字 (2)Socket原理机制: • 通信两端都有Socket. • 网 ...
- Python Socket通信原理
[Python之旅]第五篇(一):Python Socket通信原理 python Socket 通信理论 socket例子 摘要: 只要和网络服务涉及的,就离不开Socket以及Socket编 ...
- RS-232通信原理
rs232串口通信原理 串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆).大多数计算机包含两个基于RS232的串口.串口同时也是仪器 ...
- SSL 通信原理及Tomcat SSL 双向配置
SSL 通信原理及Tomcat SSL 双向配置 目录1 参考资料 .................................................................. ...
随机推荐
- Home | WebScraping.com
Home | WebScraping.com We specialize in extracting data from websites, which is known as web scrapin ...
- 用户 'IIS APPPOOL\DefaultAppPool' 登录失败解决办法
法一:将iis站点的应用程序池的用户改为本地用户,如果所示: 方法二: 1.打开sql server management studio安全性->登录名->右击新建登录名->常规- ...
- js中使用this的一些注意事项
先看看这段代码 var x =9; var fobj ={ x:1, test:function(callback){ var x= 2; callback(); } } function pp(){ ...
- HTTP消息头详解
HTTP是一个属于应用层面的面向对象的协议,由于其便捷.快速的方式.适用于分布式超媒体信息系统.于1990年提出 HTTP 协议主要特点概括如下 1.支持客户/服务器模式. 2.简单快速 请求方法常用 ...
- 工具篇-MAT(Memory Analyzer Tool)
--- layout: post title: 工具篇-MAT(Memory Analyzer Tool) description: 让内存泄漏无所遁形 2015-10-08 category: bl ...
- 解决:Visual Assist X 不支持HTML、Javascript等提示
Visual Assist X 安装后,不能进行javascript hmtl提示,只有回到老版本才行.这个问题折腾了老久,才给解决了. 记录下来,以便于网友和自己使用. 问题原因: Visual A ...
- 通过SqlHelper实现登录
1.建立解决方案:. 首先创建windows窗体应用程序,然后拖出登录界面 2. 写配置文件App.config: <configuration> <conn ...
- Python每日一练(3):爬取百度贴吧图片
import requests,re #先把要访问URL和头部准备好 url = 'http://tieba.baidu.com/p/2166231880' head = { 'Accept': '* ...
- Nginx阅读笔记(四)之root和alias
nginx指定文件路径有两种方式root和alias,这两者的用法区别,使用方法总结了下,方便大家在应用过程中,快速响应.root与alias主要区别在于nginx如何解释location后面的uri ...
- javascript 检测密码强度
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...