gpt4 book ai didi

java - 无法将 ACLMessage 发送到远程代理

转载 作者:太空宇宙 更新时间:2023-11-04 08:28:21 24 4
gpt4 key购买 nike

我使用JADE创建一个代理系统。我创建了两个程序:服务器和客户端。

服务器:

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。我该如何解决这个问题?

最佳答案

服务器代理是否在发送消息之前等待客户端代理的容器加入平台?您的代码显示服务器将发送消息,但没有显示何时发送消息。

如果服务器一启动就发送消息,并不能保证客户端已经加入平台。如果没有有效的收件人,该消息将会消失并且不会被重新发送。

关于java - 无法将 ACLMessage 发送到远程代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8048598/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com