您的位置:首页 > 其它

两台机器上的Agent进行通信

2008-09-23 19:13 176 查看
1. 前提,网络通,OS如果是winxp sp2并且防火墙打开的话,要保证防火墙设置-例外里面的“文件和打印机共享” 选中,他保证机器名解析得以正常运行。
2. 两台台机器上已经运行JADE,其中一台机器名称为:guojie。
3. 在另一台机器2480**上的AgentPlatform上右键 add remotePlatform via ams AID ,然后再弹出的对话框中添加如下信息:
NAME:ams@guojie:1099/JADE
Addresses:http://guojie:7778/acc
OK后,添加成功!然后刷新新添加的remotePlatforms的Agents list

然后发送消息:在guojie platform中已经运行一个Agent:a1,其基本功能就是显示出接收到的消息。在2480*那台机器上随便点一个Agent,右键sendmessage,双击Receivers,添加
接受者的AID:a1@guojie:1099/JADE,addresses:http://guojie:7778/acc
OK后输入msg内容比如:this message from remote 2480***,
发送后在guojie这台机器上会显示信息,表明这条从remote 机器上发送的消息可以接收到。

附:Agent a1的源代码:
package jadePrime.acl;

import jade.core.Agent;
import jade.core.behaviours.*;
import jade.lang.acl.*;

public class Receiver extends Agent {
//把接收到的信息打印出来
protected void setup()
{
addBehaviour(new CyclicBehaviour(this)
{
public void action() {
ACLMessage msg= receive();
if (msg!=null)
System.out.println( " - " +
myAgent.getLocalName() + " <- " +
msg.getContent() );
block();
}
});
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: