我使用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。我該如何解決這個問題?