setupserver.java
来自「《移动Agent技术》一书的所有章节源代码。」· Java 代码 · 共 257 行
JAVA
257 行
package shezhi;
import com.ibm.aglet.*;
import com.ibm.aglet.event.*;
import java.io.*;
import java.net.URL;
import java.sql.*;
import java.util.Enumeration;
import java.io.Externalizable;
import java.io.ObjectInput;
import java.io.ObjectOutput;
public class setupServer extends Aglet implements Runnable{
String slavename;
AgletProxy slaveProxy;
AgletID slaveid;
log log;
AgletProxy client;
AgletID self_id=null;
public void onCreation(Object o) {
log = new log();
log.Init("zqjk");
addMobilityListener(new MobilityAdapter() {
public void onArrival(MobilityEvent ev) {
//added
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("setupProxy") ){ ////get server id
// slaveid=tmp.getAgletID();
slavename=tmp.getAgletClassName();
System.out.println("the slavename is:"+slavename);
}//end if
}//end while
} catch (Exception ex) {
ex.printStackTrace();
}//end catch
//end add
}
});//end listerner
}///end onCreation
public boolean handleMessage(Message msg) {
//add
if (msg.sameKind("quit")) {
String[] mm=(String[])msg.getArg();
slaveid=new AgletID(mm[0]);
//add
URL urlClient=null;
AgletID idClient;
String[] status=new String[4];
//add
AgletContext context=getAgletContext();
self_id=getAgletID();
System.out.println("my self id is:"+self_id);
AgletProxy tmp=context.getAgletProxy(self_id);;
try
{
AgletInfo inf=tmp.getAgletInfo();
//System.out.println(inf.toString() );
//log.Add("information",inf.toString());
String address = inf.getAddress();
String classname = inf.getAgletClassName();
log.Add("address",address);
log.Add("classname",classname);
status[0]= address;
// status[1]= classname;
status[1]="设置代理";
status[2]= "正常运行";
status[3]= "正常";
urlClient=new URL(mm[1]);
System.out.println("shezhiClient url is: "+urlClient);
log.Add("event","setupServer:shezhiClient url is "+urlClient);
idClient=new AgletID(mm[2]);
System.out.println("shezhiClient id is: "+idClient);
log.Add("event","setupServer:shezhiClient id is "+idClient);
AgletContext cxt=getAgletContext();
System.out.println("current context is: "+cxt);
client = cxt.getAgletProxy(urlClient,idClient);
System.out.println("shezhiClient is: "+client);
log.Add("event","setupServer:shezhiClient proxy is "+client);
client.sendOnewayMessage(new Message("status",status));
// client.sendOnewayMessage(new Message("bye","kill client proxy"));
}
catch(java.net.MalformedURLException ex){
System.out.println("****java.net.MalformedURLException****");
ex.printStackTrace();
}
catch(InvalidAgletException ex){
System.out.println("****InvalidAgletException****");
log.Add("error","setupServer:setupServer fail to send status");
}
catch (Exception ex) {
ex.printStackTrace();
}
//end add
//end
log.Add("event","setupServer:recieve quit command from :"+slaveid);
try{
slaveProxy=getAgletContext().getAgletProxy(slaveid);
slaveProxy.sendOnewayMessage(new Message("bye","kill proxy") );
log.Add("event","setupServer:kill setupProxy success");
}
catch (Exception e){
e.printStackTrace();
log.Add("error","setupServer:kill proxy failed");
}
}//end if (msg.sameKind("quit"))
//end add
else if (msg.sameKind("write")) {
String[] str=(String[])msg.getArg();
//System.out.println("server received records is "+str[0][0]+str[0][1]);
//log.Add("event","setupServer:recieve records :"+str[0][0]+str[0][1]);
int l=str.length;
/*
for(int i=0;i<l;i++)
{
if (str[i][0]!=null)
{
for(int k=0;k<7;k++)
{
System.out.println("server received records is "+str[i][k]);
log.Add("event","setupServer:recieve records :"+str[i][k]);
}
saveResult(str[i]);
System.out.println("save Result sucess");
}
}
*/
for(int k=0;k<9;k++)
{
System.out.println("server received records is "+str[k]);
log.Add("event","setupServer:recieve records :"+str[k]);
}
saveResult(str);
System.out.println("save Result sucess");
} //end if
return true;
}//end handlemessage
public void saveResult(String[] records){
/*
tableSql tt,tt2;
tt=new tableSql();
tt2=new tableSql();
tt.tableInit("cqjk");
tt2.tableInit("cqjk");
ResultSet rs,rs2;
*/
String insert="";
//String name;
int cycle;
int gate;
//
log.Update(Integer.parseInt(records[0]));
log.Update1(Integer.parseInt(records[1]));
log.Update13(Integer.parseInt(records[2]));
log.Update14(Integer.parseInt(records[3]));
log.Update15(Integer.parseInt(records[4]));
log.Update16(records[5]);
log.Update17(records[6]);
log.Update2(Integer.parseInt(records[7]));
log.Update3(Integer.parseInt(records[8]));
/* try{
rs=tt.recordSql("select * from MonitoredValueInfo");
while (rs.next())
{
if (Integer.parseInt(rs.getString("MonitoredValueID"))==1)
{
log.Update(Integer.parseInt(records[0][2]));
System.out.println("Update sucessful!");
}
else log.Update1(Integer.parseInt(records[1][2]));
}//end while
tt.closeConnect();
}
catch(SQLException ex){
System.out.println("\n***SQLException caught ***\n");
while (ex != null){
System.out.println("SQLState:"+ex.getSQLState());
System.out.println("Message:"+ex.getMessage());
System.out.println("Vendor:"+ex.getErrorCode());
ex=ex.getNextException();
System.out.println("");
}
}//end catch
try{
rs2=tt2.recordSql("select * from AgentSetupValueInfo");
while (rs2.next())
{
if (Integer.parseInt(rs2.getString("ValueID"))==1)
{
log.Update2(Integer.parseInt(records[2][2]));
System.out.println("Update sucessful!");
}
else log.Update3(Integer.parseInt(records[3][2]));
}//end while
tt2.closeConnect();
} //end try
catch(SQLException ex){
System.out.println("\n***SQLException caught ***\n");
while (ex != null){
System.out.println("SQLState:"+ex.getSQLState());
System.out.println("Message:"+ex.getMessage());
System.out.println("Vendor:"+ex.getErrorCode());
ex=ex.getNextException();
System.out.println("");
}//end while
}//end catch
*/
}//end saveResult
} //end main
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?