Communication

RequestServer.java (1.0)

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();
   }
}

ListenerAgent.java

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");
  }
}

Sending messages with the dummy agent

(Hint: Right click in Receivers window)

Sending messages through AMS

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();
    }
}

Output

Agent phil is ready!
content = Help me
Answer: hello from phil from phil@DELL-LAPTOP2:1099/JADE