Latest Remote Method Invocation Simple Program(RMI) For Carrier 2010 2011
File Interfave.java:
import java.rmi.Remote;
FileImpl.java:
FileClient.java:
import java.io.*;import java.rmi.*;
public class FileClient{
FileServer.java:
Policy.txt:
Running steps :
Latest Remote Method Invocation Simple Program(RMI) For Carrier 2010 2011
File Interfave.java:
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface FileInterface extends Remote {
public byte[] downloadFile(String fileName) throws
RemoteException; }
FileImpl.java:
import java.io.*;
import java.rmi.*;
import java.rmi.server.UnicastRemoteObject;
public class FileImpl extends UnicastRemoteObject
implements FileInterface {
private String name;
public FileImpl(String s) throws RemoteException{
super();
name = s; }
public byte[] downloadFile(String fileName){
try {
File file = new File(fileName);
byte buffer[] = new byte[(int)file.length()];
BufferedInputStream input = new
BufferedInputStream(new FileInputStream(fileName));
input.read(buffer,0,buffer.length);
input.close();
return(buffer);
} catch(Exception e){
System.out.println("FileImpl: "+e.getMessage());
e.printStackTrace();
return(null);
} }}
FileClient.java:
import java.io.*;import java.rmi.*;
public class FileClient{
public static void main(String argv[]) {
if(argv.length != 2) {
System.out.println("Usage: java FileClient fileName machineName");
System.exit(0);
}
try {
String name = "//" + argv[1] + "/FileServer";
FileInterface fi = (FileInterface) Naming.lookup(name);
byte[] filedata = fi.downloadFile(argv[0]);
File file = new File(argv[0]);
BufferedOutputStream output = new
BufferedOutputStream(new FileOutputStream(file.getName()));
output.write(filedata,0,filedata.length);
output.flush();
output.close();
} catch(Exception e) {
System.err.println("FileServer exception: "+ e.getMessage());
e.printStackTrace();
} }}
FileServer.java:
import java.io.*;
import java.rmi.*;
public class FileServer {
public static void main(String argv[]) {
if(System.getSecurityManager() == null) {
System.setSecurityManager(new RMISecurityManager());
}
try {
FileInterface fi = new FileImpl("FileServer");
Naming.rebind("//127.0.0.1/FileServer", fi);
} catch(Exception e) {
System.out.println("FileServer: "+e.getMessage());
e.printStackTrace();
} }}
Policy.txt:
grant {
permission java.security.AllPermission "", "";
};
Running steps :
Z:\rmiex>javac FileInterface.java
Z:\rmiex>javac FileImpl.java
Z:\rmiex>javac FileServer.java
Z:\rmiex>javac FileClient.java
Z:\rmiex>rmic FileImpl
Z:\rmiex>start rmiregistry
Z:\rmiex>java -Djava.security.policy=policy.txt FileServer
Z:\rmiex>java FileClient fileName machineName
exp: java FileClient z:\calci.docx ittft27
Latest Remote Method Invocation Simple Program(RMI) For Carrier 2010 2011