教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 建筑文档 >

hprose-csharp(C#)版说明文档(3)

来源:网络收集 时间:2026-05-22
导读: 第一章 快速入门 创建Hprose的Hello服务器 我们以Visual C# 2008 Express Edition作为开发环境为例,来介绍一下如何创建一个Hprose服务器,按照传统惯例,都是以Hello World为例来作为开始的,我们这里稍稍做一下改

第一章 快速入门

创建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(\ 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(); Console.WriteLine(hello.sayHello(\ Console.WriteLine(hello.sayHello(\ }

Hprose用户手册(C#版) 11

…… 此处隐藏:703字,全部文档内容请下载后查看。喜欢就下载吧 ……
hprose-csharp(C#)版说明文档(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/439281.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)