hprose-csharp(C#)版说明文档(3)
第一章 快速入门
创建Hprose的Hello服务器
我们以Visual C# 2008 Express Edition作为开发环境为例,来介绍一下如何创建一个Hprose服务器,按照传统惯例,都是以Hello World为例来作为开始的,我们这里稍稍做一下改变,我们创建的服务器将发布一个sayHello方法,这样客户端就可以调用它来对任何事物说Hello啦。
首先启动Visual C# 2008 Express Edition开发环境,打开菜单的“文件→新建项目”,选择“控制台应用程序”,然后填写好名称之后,点击确定:
接下来,在“解决方案资源管理器”中,选择新建的项目,将其改名为HelloServer。
项目引用中,除了System以外,其它引用皆可删除。然后在它的引用上点击右键,选择添加引用:
在打开的“添加引用”对话框中,选择浏览,之后选择到Hprose对应版本的二进制文件所在的目录下,选择添加Hprose.dll和System.Numerics.dll:
Hprose用户手册(C#版) 7
第一章 快速入门
接下来,我们就可以编写代码了:
using System;
using Hprose.Server;
namespace HelloExam { class Hello {
public string sayHello(string name) { return \ } }
class Program {
static void Main(string[] args) {
HproseHttpListenerServer server = new HproseHttpListenerServer(\:2010/\
server.Methods.AddInstanceMethods(new Hello()); server.Start();
Console.WriteLine(\ Console.ReadLine();
Console.WriteLine(\ } } }
上面代码中,Hello类提供了我们要发布的方法sayHello。主程序前三行的作用分别是创建服务、发布服务、启动服务。后面的ReadLine的作用是保持程序不会立即退出,这样服务才能一直运行。程序运行后,一旦按下回车键,程序就会立即终止,服务也会停止。
8 Hprose用户手册(C#版)
第一章 快速入门
好了我们来看看效果吧,选择“调试→开始执行(不调试)”:
之后程序便会启动:
接着打开浏览器,在地址栏中输入:http://localhost:2010/,然后回车,如果看到如下页面就表示我们的服务发布成功啦。
接下来我们来看一下客户端如何创建吧。
创建Hprose的Hello客户端
客户端我们以C#控制台程序为例,开发环境仍然为Visual C# 2008 Express Edition。
客户端可以通过Invoke方法动态调用服务,也可以通过接口方式来调用,下面我们来分别介绍这两种方式。
Hprose用户手册(C#版) 9
第一章 快速入门
通过Invoke方法动态调用
首先我们先来看看如何使用Invoke方法动态调用服务。
与上面创建服务器控制台应用程序步骤相同,客户端我们也是创建一个控制台应用程序,之后为其添加Hprose.Client.dll和System.Numerics.dll这两个引用:
接下来开始编写HelloClient类的代码:
using System;
using Hprose.Client;
namespace HelloExam { class Program {
static void Main(string[] args) {
HproseHttpClient client = new HproseHttpClient(\ Console.WriteLine(client.Invoke
上面代码很简单,主程序第一句创建了Hprose客户端,并且指定了服务器地址,第二句通过范型方法进行调用,范型方法Invoke中所指定的类型为返回结果的类型。第三句是通过非泛型方法调用,结果并不会自动转为string,而是以object类型返回。但是因为Console.WriteLine支持object输出,所以这里我们不需要显式转型仍然可以正确输出。现在我们在确保服务器已经运行的情况下,启动该客户端程序,正常的话,您会看到如下结果:
如果您的服务器没有启动,您可能会看到如下的出错结果:
10 Hprose用户手册(C#版)
第一章 快速入门
通过Invoke方法调用服务器方法很灵活,Invoke方法具有多个重载,即使是对同一个服务器方法,您也可以通过指定不同的参数来获得不同类型的结果。后面我们会在详细介绍Hprose客户端时,再对Invoke方法作更详细的介绍。
但是您也会发现,通过Invoke调用不是那么的直观,参数需要自己写入数组,结果也需要自己转型,那么有没有方法可以向本地调用那样来进行远程调用呢?可以,那就是通过接口方式调用。
通过接口方式调用
我们来对上面的代码做一下小的改造,修改以后的代码如下:
using System;
using Hprose.Client;
namespace HelloExam {
public interface IHello {
string sayHello(string name); }
class Program {
static void Main(string[] args) {
HproseHttpClient client = new HproseHttpClient(\ IHello hello = client.UseService
Hprose用户手册(C#版) 11
…… 此处隐藏:703字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [建筑文档]2018年公需课:专业技术人员创新能力与
- [建筑文档]2013年福建教师招考小学数学历年真题
- [建筑文档]高中信息技术课flash知识点总结 - 图文
- [建筑文档]电工实训 - 图文
- [建筑文档]最高院公告案例分析100篇(民商篇)
- [建筑文档]南开中学高2017级14-15学年(上)期末
- [建筑文档]五粮液集团战略分析
- [建筑文档]鲁教版(2012秋季版)九年级化学 酸碱
- [建筑文档]超星尔雅2017中国哲学概论自整理题库答
- [建筑文档]关于成为海口金盘饮料公司材料独家供货
- [建筑文档]LNG学习资料第一册 基础知识 - 图文
- [建筑文档]四年级品社下册《好大一个家》复习资料
- [建筑文档]现阶段领导权力腐败的特点及发展趋势
- [建筑文档]魏晋南北朝诗歌鉴赏—嵇康
- [建筑文档]坚持追求真爱是理智的行为 正方一辩稿
- [建筑文档]湘西州刑释解教人员帮教安置工作存在的
- [建筑文档]园林工程试题库及答案
- [建筑文档]计算机长期没有向WSUS报告状态
- [建筑文档]日语最新流行语
- [建筑文档]B62-016 景观进场交底专题会议
- 2018年中考语文课内外古诗词鉴赏专题复
- 高考试题研究心得体会
- C语言基础题及答案
- 电气控制及PLC习题及答案
- 都昌小学家长学校汇报材料
- GMAT作文模板正确使用方法
- 俄军办坦克大赛:中国99式有望与豹2A6
- 成本会计练习题
- 酒店餐饮业最流行的5S管理方法
- 2014-2015学年山东省菏泽市高二(下)
- 《黄鹤楼送孟浩然之广陵》教案、说课、
- 2013年结构化学自测题 有答案版
- 2011西安世界园艺博览会游览解说词(附
- 窗口文明单位示范单位创建活动总结
- 2018满分超星尔雅就业课后练习期末答案
- 韶山市城市总体规划-基础资料
- 苏教版第三单元知识点归纳
- 第4章 曲轴模态分析
- 加大查办案件力度的思考
- 武汉CPC导轨介绍




