Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 接收消息时获取JADE代理地址_Java_Agents Jade - Fatal编程技术网

Java 接收消息时获取JADE代理地址

Java 接收消息时获取JADE代理地址,java,agents-jade,Java,Agents Jade,我正在使用jade开发和应用程序,您可以在计算机之间进行通信。我想知道的是如何获取代理的地址,该代理在接收消息时发送消息,并希望在sysout语句中显示消息的“else” protected void setup(){ super.setup(); //receiving message addBehaviour(new CyclicBehaviour(this){ public void action() {

我正在使用jade开发和应用程序,您可以在计算机之间进行通信。我想知道的是如何获取代理的地址,该代理在接收消息时发送消息,并希望在sysout语句中显示消息的“else”

protected void setup(){ 
        super.setup();

        //receiving message
        addBehaviour(new CyclicBehaviour(this){
            public void action() {
                ACLMessage msg= receive();

                if (msg!=null){
                    String s =  msg.getContent();
                    String os, browser, tool, agentName, finalVal;

                    String[] elements = s.split(":");

                    if(elements.length > 0){
                        if(elements[0].equals("property_file")){
                            String[] property = new String[elements.length-1];

                            for(int i = 1; i < elements.length; i++){
                                property[i-1] = elements[i];
                                System.out.println(property[i-1]);
                            }
                            os = property[0];
                            browser = property[1];
                            tool = property[2];
                            agentName = msg.getSender().getName();
                            finalVal = agentName + ":" + os + ":" + browser + ":" + tool;

                            CreateText cret = new CreateText();
                            cret.writeText(finalVal);
                        }else{
                            System.out.println( "<=" + myAgent.getLocalName() + " gets reply \"" + msg.getContent() + "\" sent by " + msg.getSender().getLocalName() + '\n');
                            sendRep(msg);
                        }
                    }
                    block();
                }
            }
        });
    }

终于找到了答案

ACLMessage msg= receive();
String[] addressArr = msg.getSender().getAddressesArray();
System.out.println(addressArr[0]);
数组的第一个元素的值为我们从中接收消息的代理的地址

ACLMessage msg= receive();
String[] addressArr = msg.getSender().getAddressesArray();
System.out.println(addressArr[0]);