JADE ACL-сообщение
Мне нужно получить значение "a" и "b" в агентах получения, как это сделать, пожалуйста?
public class EnvoiMessage extends CyclicBehaviour {
private boolean finished = false;
public void action() {
ACLMessage msg = new ACLMessage(ACLMessage.INFORM);
msg.setContent(+a + "" + b);
AID receiver1 = new AID("B", AID.ISLOCALNAME);
AID receiver2 = new AID("C", AID.ISLOCALNAME);
AID receiver3 = new AID("D", AID.ISLOCALNAME);
AID receiver4 = new AID("E", AID.ISLOCALNAME);
msg.addReceiver(receiver1);
msg.addReceiver(receiver2);
msg.addReceiver(receiver3);
msg.addReceiver(receiver4);
send(msg);
finished = true;
}
}
1 ответ
Если я правильно понял вопрос, используйте поведение (например, циклическое поведение), пока запрос не получен, что-то вроде этого:
public void action() {
ACLMessage msg = myAgent.receive();
if (msg != null) {
Message received. Process it ...
msg.getContent();
} else {
block();
}