我想设计两个代理Agent1在不同的时间向Agent2发送两个消息值。然后,Agent2根据接收到的值实施操作。
使用Jade,我尝试编写以下代码:
-Agent1有两个addBehaviour(new TickerBehaviour(this,time)方法
-Agent2具有addBehaviour(new CyclicBehaviour()
当我运行该程序时,我什么也没得到。如果只发送一个值,则同一个程序也可以工作。
有什么建议吗?
谢谢
最佳答案
无需同时创建循环行为和股票行情
您只需要先运行接收器代理,然后发送您的消息即可,下面的示例已通过测试:
import jade.core.Agent;
import jade.lang.acl.ACLMessage;
public class AgentReceiver extends Agent {
public void setup(){
ACLMessage msg = null;
msg = blockingReceive();
System.out.println(msg.getContent());
}
}
然后运行发送者之一:
import jade.core.AID;
import jade.core.Agent;
import jade.lang.acl.ACLMessage;
public class AgentSender extends Agent {
public void setup(){
ACLMessage message = new ACLMessage(ACLMessage.INFORM);
message.addReceiver(new AID("AgentReceiver", AID.ISLOCALNAME));
message.setContent("Hello The World");
send(message);
}
}
关于agents-jade - Jade 二特工沟通,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28671830/