文档章节

RMI远程调用简单实例

BK灬
 BK灬
发布于 2016/03/25 14:34
字数 323
阅读 54
收藏 0
RMI

客户端代码:

package com.ninemax.application.rmi.client;

import java.rmi.Naming;

import com.ninemax.application.rmi.server.service.AddServer;

/**
 * 客户端
 * 
 * @author Darker
 * 
 * 参考博客:http://gongjiayun.iteye.com/blog/906159
 */
public class RmiClient {

	public static void main(String[] args) throws Exception {

		// 在RMI服务注册表中查找名称为Hello的对象,并调用其上的方法
		AddServer add = (AddServer) Naming.lookup("rmi://127.0.0.1/Hello");

		for (int i = 0; i < 10; i++) {

			System.out.println(add.AddNumbers(10, i));
		}
	}

}

服务端代码:

package com.ninemax.application.rmi.server;

import java.rmi.Naming;
import java.rmi.registry.LocateRegistry;

import com.ninemax.application.rmi.server.service.AddServer;
import com.ninemax.application.rmi.server.service.impl.AddServerImpl;

/**
 * 服务端
 * 
 * @author Darker
 * 
 */
public class RmiServer {

	/**
	 * 启动RMI 注册服务并进行对象注册
	 * 
	 * @param args
	 */
	public static void main(String[] args) {

		try {
			// 启动RMI注册服务,指定端口为1099 (1099为默认端口)
			LocateRegistry.createRegistry(1099);
			// 创建远程对象的一个或多个实例,下面是hello对象
			// 可以用不同名字注册不同的实例
			AddServer add = new AddServerImpl();
			// 把hello注册到RMI注册服务器上,命名为hello
			Naming.rebind("Hello", add);

			System.out.println("Hello Server is ready!");
		} catch (Exception e) {

			e.printStackTrace();
		}

	}

}
package com.ninemax.application.rmi.server.service;

import java.rmi.Remote;

/**
 * 远程接口
 * 
 * @author Darker
 * 
 */
public interface AddServer extends Remote {
	
	public int AddNumbers(int firstnumber,int secondnumber)throws Exception;
}
package com.ninemax.application.rmi.server.service.impl;

import java.rmi.server.UnicastRemoteObject;

import com.ninemax.application.rmi.server.service.AddServer;

/**
 * 远程接口实现类
 * 
 * @author Darker
 * 
 * 继承UnicastRemoteObject类,同时实现了序列化
 * 
 */
public class AddServerImpl extends UnicastRemoteObject implements AddServer {

	private static final long serialVersionUID = 1L;

	public AddServerImpl() throws Exception {

		super();
	}

	@Override
	public int AddNumbers(int firstnumber, int secondnumber) throws Exception {
		
		return firstnumber + secondnumber;
	}

}

输出结果:

10
11
12
13
14
15
16
17
18
19


© 著作权归作者所有

BK灬

BK灬

粉丝 46
博文 345
码字总数 142921
作品 0
朝阳
后端工程师
私信 提问
Java RMI协议远程方法调用(RPC)

参考: 利用java-RMI进行大文件传输 RMI远程方法调用的简单方法和实例 RMI是类似RPC的一种远程方法调用协议,比RPC类型的WebService更简单,也可以跨进程访问 先来创建一个model或者javaBean,...

IamOkay
2015/09/21
357
1
rmi经典实例---远程调用简单实现方式

Java RMI之HelloWorld篇 Java RMI 指的是远程方法调用 (Remote Method Invocation)。它是一种机制,能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法。可以用此方法...

霄羽
2015/08/06
79
0
RMI 入门理解

Java RMI之HelloWorld篇 Java RMI 指的是远程方法调用 (Remote Method Invocation)。它是一种机制,能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法。可以用此方法...

Daim
2016/03/25
32
1
Python中实现远程调用(RPC、RMI)简单例子

说白了,远程调用就是将对象名、函数名、参数等传递给远程服务器,服务器将处理结果返回给客户端 远程调用使得调用远程服务器的对象、方法的方式就和调用本地对象、方法的方式差不多,因为我...

霞女
2016/11/29
41
0
RMI原理及实现

聊聊远程通信 Java远程通讯技术及原理分析 聊聊Socket、TCP/IP、HTTP、FTP及网络编程 RMI原理及实现 RPC原理及实现 轻量级分布式 RPC 框架 使用 RMI + ZooKeeper 实现远程调用框架 深入浅出S...

陶邦仁
2016/03/10
1K
3

没有更多内容

加载失败,请刷新页面

加载更多

堆”和“栈

C++作为一款C语言的升级版本,具有非常强大的功能。它不但能够支持各种程序设计风格,而且还具有C语言的所有功能。我们在这里为大家介绍的是其中一个比较重要的内容,C++内存区域的基本介绍。...

SibylY
26分钟前
2
0
总结:Https

一、介绍 简单理解,https即在http协议的基础上,增加了SSL协议,保障数据传输的安全性。 它由以前的http—–>tcp,改为http——>SSL—–>tcp;https采用了共享密钥加密+公开密钥加密的方式 ...

浮躁的码农
29分钟前
3
0
数据库表与表之间的一对一、一对多、多对多关系

表1 foreign key 表2 多对一:表 1 的多条记录对应表 2 的一条记录 利用foreign key的原理我们可以制作两张表的多对多,一对一关系 多对多: 表1的多条记录可以对应表2的一条记录 表2的多条记...

Garphy
今天
7
0
MySQL 表崩溃修复

MySQL日志报错 2019-10-19 13:41:51 19916 [ERROR] /usr/local/mysql/bin/mysqld: Table './initread_hss/user_info' is marked as crashed and should be repaired2019-10-19 13:41:51 1......

雁南飞丶
今天
6
0
Error和Exception

1.Error类和Exception类都是继承Throwable类 2.Error(错误)是系统中的错误,程序员是不能改变的和处理的,是在程序编译时出现的错误,只能通过修改程序才能修正。一般是指与虚拟机相关的问...

大瑞清_liurq
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部