jianguanclient.java

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

JAVA
168
字号
package jianguan;
import com.ibm.aglet.*;
import java.io.Externalizable;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.io.IOException;
import java.net.URL;
import java.sql.*;
public class jianguanClient extends Aglet {

    AgletProxy[] remoteProxy = new AgletProxy[1]; //remoteProxy代理slave
	 //int i=0;///i used for the order of remoteProxy
    String name = "Unknown";
	 //int num=0;         ////////记录派遣aglet的个数
    log log;

    public void onCreation(Object o) {
	log=new log();
	log.Init("cqjk");
	 	try {
	   	name = (String) getAgletContext().getProperty("aglets.user.name", "Unknown");
			///debug
			System.out.println("aglets.user.name:"+name);
			setText("aglets.user.name:"+name);
		}
		catch (Exception ex) {
		}
    }

    public void onDisposing() { }
    
   public boolean handleMessage(Message msg) {
		if (msg.sameKind("dispatch")) {     /////接受master传来的消息,并送给server  	
	    	
	 String  str=(String)msg.getArg();
    
	    	try{
			AgletContext context = getAgletContext();
	    	AgletProxy p;
	
	  		  		AgletProxy proxy = context.createAglet(null, "BasicChild", getProxy());
	  		  		URL url = new URL("atp://"+str);
	    			                  
					System.out.println("creation sucess");
					System.out.println("my proxy is"+proxy);
			  	  
				   System.out.println("my url is"+url);  			
				   remoteProxy[0] = proxy.dispatch(url);
						//p = proxy.dispatch(url);
					System.out.println("dispatch sucess");
						
					log.Add("success","jianguanClient:jianguanClient create and dispatch jianguanProxy success!");
					

				} 
				
	   			catch (InvalidAgletException ex) {
				 ex.printStackTrace();
				 log.Add("error","jianguan:jianguan dispatch jianguanProxy failed");

				} 
				catch (Exception ex) {
	   			 ex.printStackTrace();
				}
				
			
		}
		else if (msg.sameKind("sendWrite")) {
			String[][][] str=(String[][][])msg.getArg();
			//System.out.println("record is "+str[0][1]+str[0][2]);
			
			
	    
		int l=str.length;
	    int ll=str[0].length;
	    int lll=str[0][0].length;
	System.out.println("l is: "+l);
		System.out.println("ll is: "+ll);
			System.out.println("lll is: "+lll);
		for(int i=0;i<l;i++)
		{
			for(int j=0;j<ll;j++)
			{		
				for (int k=0;k<lll;k++)
				{
				
				
			if (str[i][j][0]!=null)
				{
		System.out.println("Proxy send records to server "+" "+str[i][j][k]);
		log.Add("event","jianguanProxy:send records to server :"+" "+str[i][j][k]);
				}
				}//end for k
			}//end for j
		}//end for i
			
				try {
	    			if (remoteProxy[0]!=null)
	    				remoteProxy[0].sendOnewayMessage(new Message("sendWrite",str));
	    			//System.out.println("i will dispatch another aglet to server");
				
				} 
				catch (Exception ex) {
	   			 ex.printStackTrace();
	   			 log.Add("error","jianguanClient:jianguanClient send command failed");
				}//end catch
			}//end if 
			//System.out.println("-----the dest length is:"+num);
		
   	//
	
		else if (msg.sameKind("sendbzjWrite")) {
			String[][] str=(String[][])msg.getArg();
			//System.out.println("record is "+str[0][1]+str[0][2]);
	
		for(int k=0;k<2;k++)
		{for(int i=0;i<4;i++)
		{
			System.out.println("str[k][i]=: "+str[k][i]);
		}
		}	
			
	    int l=str.length;
		int ll=str[0].length;
		for(int i=0;i<l;i++)
		{
			for(int j=0;j<ll;j++)
			{		
			if (str[i][0]!=null)
				{
		System.out.println("Proxy send records to server "+" "+str[i][j]);
		log.Add("event","jianguanProxy:send records to server :"+" "+str[i][j]);
				}
			}//end for j
		}//end for i
			
				try {
	    			if (remoteProxy[0]!=null)
	    				remoteProxy[0].sendOnewayMessage(new Message("sendbzjWrite",str));
	    			//System.out.println("i will dispatch another aglet to server");
				
				} 
				catch (Exception ex) {
	   			 ex.printStackTrace();
	   			 log.Add("error","jianguanClient:jianguanClient send command failed");
				}//end catch
			}//end if 
	//
	else if (msg.sameKind("bye")) {  /////结束会话
    System.out.println("Client will dispose");	  
    dispose();
	                                	}
	else if (msg.sameKind("status")) {
   
    String str[]=(String[])msg.getArg();
	log.Add("address",str[0]);
	log.Add("AgentName",str[1]);
	log.Add("AgentStatus",str[2]);
	log.Add("ConnectionStatus",str[3]);
	
	
	                                    }
		return false; 
   }//end handlemessage

  
}//end main

⌨️ 快捷键说明

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