我有两台通过交叉电缆连接的计算机。我想使用JADE multiagent平台向另一台主机中的代理发送消息。下面的代码显示了一个消息示例:
// set a new message with performative
ACLMessage msg = new ACLMessage(ACLMessage.INFORM);
// destinatary of message
AID remoteAMSf = new AID("R10@192.168.1.2:12349/JADE", AID.ISGUID);
remoteAMSf.addAddresses("http://centrium-linux:7778/acc");
msg.addReceiver(remoteAMSf);
// content of message
msg.setContent("Hello World");
send(msg);
我已经使用netstat -atn
检查端口7778是否打开,结果是:
tcp 0 0 0.0.0.0:5222 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:5941 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:5269 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:32920 127.0.0.1:5941 ESTABLISHED
tcp 0 0 127.0.0.1:5941 127.0.0.1:32920 ESTABLISHED
tcp6 0 0 127.0.1.1:7778 :::* LISTEN
tcp6 0 0 :::5222 :::* LISTEN
tcp6 0 0 :::5269 :::* LISTEN
tcp6 0 0 ::1:631 :::* LISTEN
tcp6 0 0 :::12349 :::* LISTEN
我使用以下命令启动平台:
-gui -host 192.168.1.1 -port 12349 -agents "list-of-agents"
但是,控制台向我展示了这一点:
WARNING: Cannot deliver message to address: http://centrium-linux:7778/acc [jade.mtp.MTPException: centrium-linux - Caused by: centrium-linux]. Trying the next one...
我无法向其他主机中的代理发送消息,甚至无法添加其他平台。
我检查了两台计算机之间的连接,并发送了ping命令,这样就可以了。 http地址正确。
谢谢!