私はJADEを使用してエージェントシステムを作成しています。私は2つのプログラムを作成しました:サーバーとクライアント。リモートエージェントに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をクライアントに送信できません。この問題を解決するにはどうすればよいですか?