0
我正在开发和使用玉的应用程序,您可以在计算机之间进行通信。我想知道的是如何获得在接收消息时发送消息并希望在消息的“其他”中的sysout语句中显示的代理的地址。获取JADE代理地址,同时收到消息
protected void setup(){
super.setup();
//receiving message
addBehaviour(new CyclicBehaviour(this){
public void action() {
ACLMessage msg= receive();
if (msg!=null){
String s = msg.getContent();
String os, browser, tool, agentName, finalVal;
String[] elements = s.split(":");
if(elements.length > 0){
if(elements[0].equals("property_file")){
String[] property = new String[elements.length-1];
for(int i = 1; i < elements.length; i++){
property[i-1] = elements[i];
System.out.println(property[i-1]);
}
os = property[0];
browser = property[1];
tool = property[2];
agentName = msg.getSender().getName();
finalVal = agentName + ":" + os + ":" + browser + ":" + tool;
CreateText cret = new CreateText();
cret.writeText(finalVal);
}else{
System.out.println("<=" + myAgent.getLocalName() + " gets reply \"" + msg.getContent() + "\" sent by " + msg.getSender().getLocalName() + '\n');
sendRep(msg);
}
}
block();
}
}
});
}
如果地址将会像“http://[email protected]:7778/acc”,并有使用的格式是,如果我想在以后发送消息。该功能将是这样的。在这里我已经硬编码了地址的值。
public void sendMessage(String message){
ACLMessage msg = new ACLMessage(ACLMessage.INFORM);
AID r = new AID("[email protected] ", AID.ISGUID);
//r.addAddresses("http://[email protected]:7778/acc");
msg.setContent(message);
msg.addReceiver(r);
send(msg);
}