⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 acremoteclient.java

📁 < 嵌入式系统编程>>源代码解析光盘,包括这本书各章节的示例代码(无密码)
💻 JAVA
字号:
package ACRemote;

import java.util.Vector;
import java.io.IOException;
import java.rmi.RemoteException;
import java.rmi.RMISecurityManager;
import net.jini.discovery.DiscoveryListener;
import net.jini.discovery.DiscoveryEvent;
import net.jini.discovery.LookupDiscovery;
import net.jini.core.lookup.ServiceRegistrar;
import net.jini.core.lookup.ServiceTemplate;

public class ACRemoteClient implements Runnable{
	protected ServiceTemplate template;
	protected LookupDiscovery discovery;
    static Object obj;
	class MyListener implements DiscoveryListener{
		public void discovered(DiscoveryEvent de){
			ServiceRegistrar newregs[] = de.getRegistrars();
			for(int i=0;i<newregs.length;i++){
				lookForService(newregs[i]);
			}
		}
		public void discarded(DiscoveryEvent de){
		}
	}

	public ACRemoteClient() throws IOException{
		Class types[] = { ACRemoteServiceInterface.class };
		template = new ServiceTemplate(null, types, null);

		if(System.getSecurityManager() == null){
			System.setSecurityManager(new RMISecurityManager());
		}
		discovery = new LookupDiscovery(new String[] {""});
		discovery.addDiscoveryListener(new MyListener());
	}

	protected Object lookForService(ServiceRegistrar lusvc){
		Object o = null;
		try{
			o = lusvc.lookup(template);
		}catch(RemoteException e) {
			System.err.println("Error doing lookup : "+e.getMessage());
			return null;
		}

		if(o == null){
			System.out.println("\t \t No matching service found.");
			return null;
		}
		obj = o;
		System.out.println("\t \t Found a matching service.");
		return o;
	}

	public void run(){
		while(true){
			try{
				Thread.sleep(1000000);
			}catch(InterruptedException e){
				System.err.println("Interrpted Exception occured: "+e.getMessage());
			}
		}
	}
}

⌨️ 快捷键说明

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