|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
学习JAVA的目的更多的是培养自身的工作能力,我觉得工作能力的一个核心就是:独立思考能力,因为只有独立思考后,才会有自己的见解
要完成局域网内分歧呆板上的Agent举行通讯,必要注重如许两个成绩:
1。防火墙内关于文件与打印机共享的协定必需翻开,包管呆板名的剖析。
2。通讯时ACLMessage增加Receiver的时分指定正当的AID,这个AID一要有完全的称号,二要有正当的Addresses。
好比上面的例子
importjade.core.AID;
importjade.domain.AMSService;
importjade.domain.FIPAAgentManagement.*;
publicclassSender2extendsAgent{
protectedvoidsetup()
{
AMSAgentDescription[]agents=null;
AIDRams=newAID("ams@gjpc:1099/JADE");//猎取gjpc呆板上的ams
Rams.addAddresses("http://gjpc:7778/acc");
try{
SearchConstraintsc=newSearchConstraints();
c.setMaxResults(newLong(-1));
//agents=AMSService.search(this,newAMSAgentDescription(),c);
//上面查找rams内里的agents
agents=AMSService.search(this,Rams,newAMSAgentDescription(),c);
}
catch(Exceptione){
System.out.println("ProblemsearchingAMS:"+e);
e.printStackTrace();
}
ACLMessagemsg=newACLMessage(ACLMessage.INFORM);
msg.setContent("thisisfromguojiesPing");//当地呆板名为guojie
//逐一向他们发送动静
for(inti=0;i<agents.length;i++){
if(agents[i].getName().equals(getAID())){
continue;
}
System.out.println(agents[i].getName().toString());
agents[i].getName().addAddresses("http://gjpc:7778/acc");
//这一句必需要有
msg.addReceiver(agents[i].getName());
}
System.out.println("waitfroaminute...");
send(msg);
}
}
专门做了这个例子;而java的这个例子好像就是为了教学而写的,很多教学目的的例子是不考虑优化、性能的。 |
|