class RequestServer extends CyclicBehaviour {
protected ACLMessage
makeReply(ACLMessage msg) {
String info = msg.getContent();
System.out.println("content
= " + info);
ACLMessage reply =
msg.createReply();
reply.setPerformative(ACLMessage.INFORM);
reply.setContent("hello from " + myAgent.getLocalName());
return reply;
}
public RequestServer(Agent a) {
super(a); }
public RequestServer() { }
public void action() {
ACLMessage msg =
myAgent.receive();
if (msg != null)
myAgent.send(makeReply(msg));
block();
}
}
package demos;
import jade.core.*;
import jade.core.behaviours.*;
import jade.lang.acl.*;
public class ListenerAgent extends Agent {
protected void setup() {
System.out.println("Agent " + getLocalName() + " is
ready!");
addBehaviour(new demos.RequestServer(this));
}
// put agent cleanup operations here:
protected void takeDown() {
System.out.println(
"Agent " +
getLocalName() + " is shutting down");
}
}
(Hint: Right click in Receivers window)
public class Sender extends Agent {
protected void setup() {
ACLMessage msg = new ACLMessage(ACLMessage.REQUEST);
msg.setContent( "Help me" );
msg.addReceiver( new AID( "phil", AID.ISLOCALNAME) );
send(msg);
msg= blockingReceive();
if (msg!=null)
System.out.println(
"Answer: "
+
msg.getContent() + " from "
+
msg.getSender().getName() );
doDelete();
}
}
Agent phil is ready!
content = Help me
Answer: hello from phil from phil@DELL-LAPTOP2:1099/JADE