我使用JADE创建代理程序系统。我创建了两个程序:一个服务器和一个客户端。无法将ACLMessage发送到远程代理程序
服务器:
Runtime runtime = Runtime.instance(true);
Profile profile = new ProfileImpl();
jade.wrapper.AgentContainer agentcontainer =
runtime.createMainContainer(profile);
agentcontainer.createNewAgent(
"server", "MASServer.CenterAgent", new object[] { this }).start();
服务器的行为:
ACLMessage AclAnswer = new ACLMessage(ACLMessage.INFORM);
AclAnswer.setContent("From server:helllo");
AID recei = new AID("client", AID.ISLOCALNAME);
AclAnswer.addReceiver(recei);
agent.send(AclAnswer);
客户:
Profile profile = new ProfileImpl(false);
profile.setParameter(ProfileImpl.MAIN_HOST, "myhostaddress");
Runtime runtime = Runtime.instance();
jade.wrapper.AgentContainer secondaryContainer =
runtime.createAgentContainer(profile);
secondaryContainer.createNewAgent(
"client", "MASClient.CenterAgent", new object[] { this }).start();
客户的行为:
ACLMessage AclAnswer = new ACLMessage(ACLMessage.INFORM);
AclAnswer.setContent("From client:helllo");
AID recei = new AID("server", AID.ISLOCALNAME);
AclAnswer.addReceiver(recei);
agent.send(AclAnswer);
当服务器和客户端程序在同一台计算机上运行,它工作正常。
当服务器在计算机A上运行并且客户端在计算机B上运行时,客户端可以向服务器发送ACLMessage,但服务器无法向客户端发送ACLMessage。我该如何解决这个问题?