- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
六步教你学会简单rmi
六步教你学会简单 RMI(上)
江苏 无锡 缪小东
(以下所有 java 文件、.class 文件和 policy.txt 文件都在 c 盘根目录哦!101.txt 在 c 盘的子
目录 11 下哦!一定要放对!!!)
一、 定义远程接口
远程接口就是远程机器上可供客户使用的方法的集合。很幸运它用 java 语言的接口表示!我们定义
这样一个接口只有一个下载远程机器上的指定名称的文件。
//FileServerInterface.java
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface FileServerInterface extends Remote {
public byte[] download(String Filename)throws RemoteException ;
}
二、实现远程接口
实现上面远程接口的方法,同时继承 UnicastRemoteObject 类!
//FileServerImpl.java
import java.io.*;
import java.rmi.*;
import java.rmi.server.UnicastRemoteObject ;
public class FileServerImpl extends UnicastRemoteObject implements FileServerInterface{
private static final String initDir = c://11//;
public FileServerImpl( ) throws RemoteException{
super();
}
public byte[] download(String filename){
try{
File file = new File(initDir + filename);
byte[] buffer = new byte[(int)file.length()];
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
bis.read(buffer,0,buffer.length);
bis.close();
return buffer ;
}catch(Exception e ){
System.out.println(FileServerImpl: + e.getMessage());
e.printStackTrace();
return null ;
}
}
}
三、编写服务器端
1. 创建并安装一个 RMISecurityManager 实例;
2. 创建一个远程对象的实例;
3. 使用 RMI 注册工具注册该远程实例对象。
//FileServer.java
import java.io.*;
import java.rmi.*;
public class FileServer {
public static void main(String[] args){
if(System.getSecurityManager()==null ){
System.setSecurityManager(new RMISecurityManager());
}
try{
FileServerImpl fi = new FileServerImpl(FileServer);
java.rmi.Naming.rebind(///FileServer,fi);
}catch(Exception e){
System.out.println(FileServer: + e.getMessage());
e.printStackTrace();
}
}
}
四、编写客户端
//FileClient.java
import java.io.*;
import java.rmi.*;
public class FileClient {
public static void main(String[] args){
if(args.length != 2 ){
System.out.println(Usage: java FileClient
文档评论(0)