jgproxy.java

来自「《移动Agent技术》一书的所有章节源代码。」· Java 代码 · 共 128 行

JAVA
128
字号

package jianguan;

import com.ibm.aglet.*;
import com.ibm.aglet.event.*;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.io.IOException;
import java.net.URL;
import java.net.*;
import java.sql.*;
import java.util.*;
import java.io.*;

public class jgProxy extends Aglet {

transient String name = "Unknown"; ////name 用于表示本地context
private    AgletProxy masterProxy = null;
transient    AgletProxy serverProxy = null;
    AgletID sid=null;
    String sname;
    AgletID self_id=null;
	URL homeURL = null;///表示最初派遣主机的url
    AgletID aid = null;

 
 

 public void onCreation(Object o) {
 
    /* masterProxy = (AgletProxy) o;
		try {
			
			homeURL = getAgletContext().getHostingURL();
            aid = masterProxy.getAgletID();
            ////debug
            System.out.println("hostUrl is:"+homeURL);
            System.out.println("agletID is:"+aid);
            setText("hostUrl is:"+homeURL);
            setText("agletID is:"+aid);
            
        } catch (Exception ex) {
            System.out.println(ex);
        } */
				
    addMobilityListener(new MobilityAdapter() {
	  
		public void onArrival(MobilityEvent me) {
			setText("Arrived safely");
			
		self_id=getAgletID();
				System.out.println("my self id is:"+self_id);
				
	/*	AgletContext cxt=getAgletContext();
	      try{
				Enumeration aglets=cxt.getAgletProxies();
				while (aglets.hasMoreElements()) {			
					AgletProxy tmp=(AgletProxy) aglets.nextElement();
					
					AgletInfo inf=tmp.getAgletInfo();
					System.out.println(inf.toString() );
				   String agName=tmp.getAgletClassName();
					if (agName.endsWith("Server") ){ ////get server id
						sid=tmp.getAgletID();
						sname=tmp.getAgletClassName();
						System.out.println("the sname is:"+sname);
					}//end if
				}//end while
				////////////

				System.out.println(cxt.toString() );
				 name = (String) getAgletContext().getProperty("aglets.user.name", "Unknown");
				}//end try
				 catch (Exception ex) {
		   		 ex.printStackTrace();
				                } //end catch
	*/
								
	      }  	//end onarrival
		  
		  public void onReverting(MobilityEvent mev) {

           System.out.println("Goodbye");

            }
		}); //end listerner 
		
	
    }//end oncreation

    public void onDisposing() {  }
		

  /*  public boolean handleMessage(Message msg) {
		
		 if (msg.sameKind("sendWrite")) {     /////接受master传来的消息,并送给server  	
	    	String[] str=(String[])msg.getArg();
	    	System.out.println("Proxy receive record from jianguanClient: "+str[0]);
	
	    	//测试安全性fileRead();
	    	
	    	//////////
	    	try{
	    	
	    		System.out.println("serverProxy id is:"+sid);
	    		if (serverProxy == null) {
	     	  	 	serverProxy = getAgletContext().getAgletProxy(sid);   ///获取代理
	   		}
		 	 	
		 		serverProxy.sendOnewayMessage(new Message("write",str) );
		 		
		 		
	
	  	}//end try
      	catch(Exception e){
      		e.printStackTrace();
      		System.out.println("serverProxy message error");
      	}
	    	return true;
		}//end if

		return false;
   }//end handlemessage
   
   */
   
}//end Proxy

⌨️ 快捷键说明

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