`

RPC(Remote Procedure Call)远程过程调用

 
阅读更多
Xml_Rpc是采用http协议通过xml数据格式实现rpc(远程调用过程)一个项目。项目主页:http://ws.apache.org/xmlrpc/在download页面中可以下载xml_rpc的jar包。在Documenttation中有只用说明和小例子可以简单的做参考。
下面是对一个helloworld的程序代码解释:
Rpc是一种实现远程调用过程的规范,它区别于大家熟知的最基本的本地调用。它实现了不同服务器跨域访问。狭义的讲:通过一个客户端连接到远程服务器调用服务端的对象。
首先写一个server:RpcSever.java
//创建一个webServer的实例绑定在8080端口上,重载方法中第二的参数为绑定的IP地址默认为本地
		WebServer webServer = new WebServer(8080);
		//创建以property形式的Handler映射
		PropertyHandlerMapping phm = new PropertyHandlerMapping();
		//添加handler
		phm.addHandler(DefaultHandler.class.getName(), HelloHandler.class);
		//启用void的方法
		phm.setVoidMethodEnabled(true);
		//从webserver的实例中获得一个XmlRpcServer的实例
		XmlRpcServer xmlRpcServer = webServer.getXmlRpcServer();
		//将创建好的handler映射对象填充到xmlRpcServer的实例中
		xmlRpcServer.setHandlerMapping(phm);

		//获取xmlrpcServer的配置对象
		XmlRpcServerConfigImpl serverConfig = (XmlRpcServerConfigImpl) xmlRpcServer.getConfig();
		//修改xmlrpcServer的配置对象中的属性
		serverConfig.setEnabledForExtensions(true);
		serverConfig.setContentLengthOptional(false);
		//启动webServer 它其实就是一个简单web服务器,启动后会处理客户端发过来请求
		webServer.start();

在sever端用到一个Handler它是一个专门被客户端调用的类,它的创建和普通的类一样,但你会发现它实现了一个接口,可能是在客户端调用服务端实例的时候采用了动态代理必须用接口否则创建代理不成功,这种实现也充分体现了安全性。在以前的版本并没有考虑到这点可能后来加上去的。
Handler:HelloHandler.java
public class HelloHandler implements DefaultHandler{
	public String sayHello(String name){
		System.out.println("接受到请求!");
		return name+":客户你好!";
	}
}

在这里就不列出接口的代码了,很容易看出。
最后创建客户端:RpcClient.java
//创建XmlRpcClientConfigImpl看类名就可知道这个是用来配置XmlRpcClient参数的
		XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
		//设置要连接远程服务器
		config.setServerURL(new URL("http://127.0.0.1:8080"));
		config.setEnabledForExtensions(true);
		//设置连接超时的时间
		config.setConnectionTimeout(60 * 1000);
		config.setReplyTimeout(60 * 1000);
		//创建XmlRpcClient对象
		XmlRpcClient client = new XmlRpcClient();
		//填充XmlRpcClient的配置信息
		client.setConfig(config);
		//通过util包中的ClientFactory类方便管理XmlRpcClient的实例
		ClientFactory factory = new ClientFactory(client);
		//通过ClientFactory创建要远程调用对象的代理对象,用接口接收
		DefaultHandler echo = (DefaultHandler) factory.newInstance(DefaultHandler.class);
		//调用接口暴露出的可见的方法
		System.out.println(echo.sayHello("luoxun"));
分享到:
评论

相关推荐

    RPC(Remote Procedure Call Protocol)远程过程调用协议

    RPC(Remote Procedure Call Protocol)——远程过程调用协议

    rpc-Remote Procedure Call源码1

    远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。

    rpc远程过程调用讲解与实例

    rpc即Remote Procedure Calls,本资源主要讲解了rpc的实现过程,它是在linux下客户端与服务器端通信的,实例主要实现了客户端输入数字,服务器端计算平均数并返回给客户端。

    rpc-Remote Procedure Call源码2

    远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。

    一些服务端口说明书免费下载

    135端口:135端口主要用于使用RPC(Remote Procedure Call,远程过程调用)协议并提供DCOM(分布式组件对象模型)服务。  端口说明:135端口主要用于使用RPC(Remote Procedure Call,远程过程调用)协议并提供...

    远程过程调用RPC生成工具

    RPC(Remote Procedure Call,远程过程调用)是一种计算机通信协议,它允许一个程序请求另一个地址空间(通常是远程计算机上的程序)执行代码,并等待结果返回。RPC使得程序能够像调用本地函数一样调用位于远程...

    Go语言RPC(模拟远程过程调用)

     服务器开发中会使用RPC(Remote Procedure Call,远程过程调用)简化进程间通信的过程。RPC能有效地封装通信过程。RPC能有效地封装通信过程,让远程的数据收发通信过程看起来就像本地的函数调用一样。  本例中,...

    基于thrift的RPC调用实例

    RPC(Remote Procedure Call Protocol)远程过程调用协议实例,学习和使用thrift无痛入门代码。具体使用方法,可以看博客详解。

    RPC应用的java实现

    Remote Procedure Call,远程过程调用。也就是说,调用过程代码并不是在调用者本地运行,而是要实现调用者与被调用者二地之间的连接与通信。比较严格的定义是:Remote procedure call (RPC) is a protocol that ...

    AMFPHP php远程调用(RPC, Remote Procedure Call)工具 快速入门教程

    AMFPHP是PHP的远程调用(RPC, Remote Procedure Call)工具。

    轻轻松松java源代码

    端口说明:135端口主要用于使用RPC(Remote Procedure Call,远程过程调用)协议并提供DCOM(分布式组件对象模型)服务,通过RPC可以保证在一台计算机上运行的程序可以顺利地执行远程计算机上的代码;使用DCOM可以...

    RPC简单文档

    本文简单介绍了RPC(Remote Procedure Call 远程过程调用)的原理结构、特点,及其开放给编程人员不同层次的编程接口。并且例举实例示范如何通过Rpcgen 编译工具来快速开发RPC应用。

    利用RPC远程攻击攻击WINDOWS的源程序

    Remote Procedure Call (RPC)是Windows 操作系统使用的一种远程过程调用协议。RPC提供进程间交互通信机制,允许在某台计算机上运行程序的无缝地在远程系统上执行代码。Microsoft的RPC部分在通过TCP/IP处理信息交换时...

    gRPC_V1.0.pdf_remote_grpc_golang_

    RPC(remote procedure call 远程过程调用)框架实际是提供了一套机制,使得应用程序之间可以进行通信,而且也遵从server/client模型。使用的时候客户端调用server端提供的接口就像是调用本地的函数一样。

    rpc.zip_java_remote

    Java RPC教程,RPC是远程过程调用(Remote Procedure Call)的缩写形式。

    GRPC 传图像 python版

    所谓RPC(remote procedure call 远程过程调用)框架实际是提供了一套机制,使得应用程序之间可以进行通信,而且也遵从server/client模型。使用的时候客户端调用server端提供的接口就像是调用本地的函数一样。

    WebApplication_GrpcServer.zip

    所谓RPC(remote procedure call 远程过程调用)框架实际是提供了一套机制,使得应用程序之间可以进行通信,而且也遵从server/client模型。使用的时候客户端调用server端提供的接口就像是调用本地的函数一样.

    Alibaba-Middleware-Challenge:阿里巴巴中间件挑战赛,包括RPC(远程过程调用)和MOM(面向消息的中间件)组件

    RPC(Remote Procedure Call )——远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在(如TCP或UDP),为通信程序之间携带信息数据。在...

    rpc:第一届阿里巴巴中间件性能竞赛的远程过程调用(RPC)程序

    RPC(Remote Procedure Call )——远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI...

    RemoteProcedureCall(RPC)程序设计指南

    详细介绍了远程过程调用的实现,并用C给出了相应实现的例子

Global site tag (gtag.js) - Google Analytics