在jade远程平台之间传递ACL消息

我需要在2个jade平台之间传递ACL消息。 我实现了我的代码,以便在同一容器中的代理之间传递消息。 这很好。 但我无法开发该代码以在远程平台之间传递消息。

以下是我在同一容器中为代理实现的内容。 在发送方代理程序代码中,结果[]仅获取同一平台中的代理程序。

我错过了什么? 是否有任何方法可以获取远程平台中的代理列表?

发件人代理

DFAgentDescription temp = new DFAgentDescription(); try { //DFAgentDescription[] result = DFService.search(this,temp); SearchConstraints sc = new SearchConstraints(); DFAgentDescription[] result=DFService.search(this,temp,sc); ACLMessage acl = new ACLMessage(ACLMessage.REQUEST); System.out.println("Agents: "); for(int i=0;i<result.length;i++) { if(result[i].getName().getLocalName().equalsIgnoreCase("R1")) { acl.addReceiver(result[i].getName()); System.out.print(" , "+result[i].getName().getLocalName()); } } acl.setContent("Hello..."); this.send(acl); System.out.println("Message Sent..."); } catch(FIPAException e) { System.out.println("Error !: "+e); } 

接收代理

 addBehaviour(new CyclicBehaviour() { public void action() { ACLMessage msg = myAgent.receive(); if(msg != null) { if(msg.getPerformative()== ACLMessage.REQUEST) { String content = msg.getContent(); if ((content != null)) { System.out.println("Received Request from "+msg.getSender().getLocalName()); System.out.println("Received Message : "+content); } else { block(); } } } else { block(); } } }); 

尝试这个

 AID r=new AID("agent-name@platform",AID.ISGUID); r.addAddresses("http://192.168.1.1:7778/acc"); acl.addReceiver(r); acl.setContent("Hello.!"); this.send(acl); System.out.println("\nMessage Sent to "+r); 

相反,我的本地IP使用您自己的IP或主机名。