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 + -
显示快捷键?