?? finderproxy.java
字號(hào):
package ecmAglet;
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 finderProxy extends Aglet {
transient String name = "Unknown"; ////name 用于表示本地context
transient AgletProxy masterProxy = null;
//
transient AgletProxy serverProxy = null;
AgletID sid=null;
String sname;
AgletID self_id=null;
//String str;
// Carry URL and AgletID
URL homeURL = null;///表示最初派遣主機(jī)的url
AgletID aid = null;
public finderProxy() {
}
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 ev) {
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("finderServer") ){ ////get server id
sid=tmp.getAgletID();
sname=tmp.getAgletClassName();
System.out.println("the sname is:"+sname);
}
}
////////////
//System.out.println(inf.toString() );
System.out.println(cxt.toString() );
//try {
name = (String) getAgletContext().getProperty("aglets.user.name", "Unknown");
} catch (Exception ex) {
ex.printStackTrace();
}
}
catch(Exception e){
e.printStackTrace();
}
}//end onarrival()
});//end listerner
}//end function;
public void onDisposing() {
}
public boolean handleMessage(Message msg) {
/*
else if (msg.sameKind("okConnect")) {
try{
sid= (AgletID)msg.getArg();
System.out.println("connect with server and server id is:"+sid);
serverProxy=getAgletContext().getAgletProxy(sid);
System.out.println("send the query to server");
serverProxy.sendAsyncMessage(new Message("dbQuery",str) );
}
catch(Exception e){
System.out.println("serverProxy message error");
}
}*/
if (msg.sameKind("sendQuery")) { /////接受master傳來(lái)的消息,并送給server
String str=(String)msg.getArg();
System.out.println("finderProxy receive query from servelet: "+str);
//測(cè)試安全性fileRead();
//////////
try{
String[] mm=new String[2];
mm[0]=(String)self_id.toString();
mm[1]=str;
System.out.println("connect with server and send query "+mm[0]+" "+mm[1]);
if (serverProxy == null) {
serverProxy = getAgletContext().getAgletProxy(sid); ///獲取dbServer代理
}
Object result=serverProxy.sendAsyncMessage(new Message("connect",mm) ).getReply();
msg.sendReply(result); ///返回查詢結(jié)果到master
/*
serverProxy=getAgletContext().getAgletProxy(sid);
serverProxy.sendAsyncMessage(new Message("connect",mm) );
System.out.println("slave have send message to server");
//serverProxy=getAgletContext().getAgletProxy(sid);
//System.out.println("send the query to server");
//serverProxy.sendAsyncMessage(new Message("dbQuery",str) );
*/
}
catch(Exception e){
e.printStackTrace();
System.out.println("serverProxy message error");
}
////
//dbDisplay(str);
//window.appendText(str);
return true;
}
else if (msg.sameKind("getResult")) {
//System.out.println("slave receive result from server");
String records=(String)msg.getArg();
try {
if (masterProxy == null) {
masterProxy = getAgletContext().getAgletProxy(homeURL, aid);
}
//masterProxy.sendMessage(new Message("text", name + " : " + text));
// masterProxy.sendMessage(new Message("getResult",records));
msg.sendReply(records);
dispose();
//this.sendMessage(new Message("bye","kill myself") );
}
catch (Exception ex) {
ex.printStackTrace();
}
}else if (msg.sameKind("bye")) { /////結(jié)束會(huì)話
try {
Thread.currentThread().sleep(3000);
} catch (Exception ex) {}
//msg.sendReply();
dispose();
}
return false;
}
///test the slave can or not read the server's file
public void fileRead() {
File input =new File("d:\\zjwork\\fileRead.java");
if (input.exists()){
System.out.println("\nThis file found.");
}
else System.out.println("Sorry,this file no found!");
if (input.isFile()&& input.canWrite() && input.canRead())
{
try{
RandomAccessFile file=new RandomAccessFile(input,"rw");
System.out.println("file length:"+file.length());
System.out.println("pointer pos:"+file.getFilePointer());
while (file.getFilePointer()<file.length())
System.out.println(file.readLine());
file.close();
}
catch(IOException e) { }
}
else
System.out.println("can't read file");
}
////////返回應(yīng)答消息到server
public void sendText(String text) {
try {
if (masterProxy == null) {
masterProxy = getAgletContext().getAgletProxy(homeURL, aid);
}
//masterProxy.sendMessage(new Message("text", name + " : " + text));
masterProxy.sendMessage(new Message("text",text));
}
catch (Exception ex) {
ex.printStackTrace();
}
}
private void print(String m) {
System.out.println("Receiver : " + m);
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -