64.txt

来自「是一个 java 基础学习软件 有设计说明」· 文本 代码 · 共 110 行

TXT
110
字号
// 
远程调用

 必须生成存根

 实现该接口的服务器类rmic

 启动服务器

 安全管理器

 启动rmi注册表

//


import java.rmi.*;
import java.rmi.server.*;

public class BindTest
{
	public static void main(String[] args)
	{
		try
		{
			String[] bindings = Naming.list("");
			for(int i =0;i<bindings.length;i++)
			{
				System.out.println(bindings[i]);
			}
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
	}
}
//// 
import java.rmi.*;
import java.rmi.server.*;

public class RmiClientTest
{
	public static void main(String[] args)
	{
			System.setProperty("java.security.policy","client.policy");    //set policy
		
		System.setSecurityManager(new RMISecurityManager());
		
		String url = "rmi://localhost/";
		
		try 
		{
			Server c1 = (Server) Naming.lookup(url+"toaster");
			Server c2 = (Server) Naming.lookup(url+"oven");
			System.out.println(c1.getDescription());
			System.out.println(c2.getDescription());
		}			
		catch(Exception e)
		{
			e.printStackTrace();
		}
	}
}
//
//  rmi  

import java.rmi.*;
import java.rmi.server.*;

public class RmiTest
{
	public static void main(String[] args)
	{
		try 
		{
			System.out.println("Constructing....");	
			
			Rmi p1 = new Rmi("Toaster");
			Rmi p2 = new Rmi("Oven");
			
			System.out.println("Binding server ....");
			
			Naming.rebind("toaster",p1);
			Naming.rebind("oven",p2);
			
			System.out.println("Waiting for....");
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
	}
}
class Rmi extends UnicastRemoteObject implements Server
{
	public Rmi (String s) throws RemoteException
	{
		name = s;
	}
	public String getDescription() throws RemoteException
	{
		return "I am a "+name+". Buy me!";
	}
	private String name;	
}
interface Server extends Remote
{
	String getDescription() throws RemoteException;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?