使用主类初始化的两个代理之间的通信



Jade Agent 通信不起作用 我是玉器编程的新手;我正在尝试了解代理通信

我尝试使用参数窗口来启动代理,但是当我从主类调用代理时,它以这种方式工作 响应未通过

代理初始化

AgentController agentCtrl = mainCtrl.createNewAgent("MasterAgent", MasterRoutingAgent.class.getName(),new Object[0]);               
AgentController agentCtrl2 = mainCtrl.createNewAgent("DeliveryAgent", DeliveryAgents.class.getName(),new Object[0]);
//start agent
agentCtrl.start();
agentCtrl2.start();

//Send message from main Master Agent
ACLMessage msg = new ACLMessage(ACLMessage.CFP);
msg.setContent("Master Agent Initialization Complete");
msg.addReceiver(new AID("Message Initiate"+AID.ISLOCALNAME));
send(msg);


//Reciever Agent
addBehaviour(new CyclicBehaviour(this) {
@Override
public void action() {
System.out.println(getLocalName()+": Waiting for Message");
ACLMessage msg = receive();
if(msg!=null) {
System.out.println(getLocalName()+": Recieved Response from "+ msg.getSender().getLocalName()+" message: "+msg.getContent());
}
else if(msg==null){
System.out.println("This is a null message");
}

System.out.println(getLocalName()+": This line is printed");
}
});

The agent doesn't recieve the message

您确定您的接收方 AID 是正确的吗?也许你应该写msg.addReceiver(new AID("DeliveryAgent", AID.ISLOCALNAME));

最新更新