2015-12-02 21 views

回答

0

玉代理是玉器平台内的对象。每个代理都有一个生命周期(设置,操作,取下)。在容器/平台中的代理之间或不同容器/平台中的代理之间进行通信是使用ACL消息传递协议完成的,并且完全由Jade框架处理,因此您通常不需要使用套接字或RMI在代理之间进行通信,但是如果您的代理商需要与任何外部应用程序进行沟通,完全有可能(并且完全不推荐),您可以在您的任何代理行为action方法中执行此操作。例如这样的事情:

public class MyAgent extends Agent { 

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

     addBehaviour(new CommunicateBehaviour()); 
    } 

    private class CommunicateBehaviour extends OneShotBehaviour { 

     @Override 
     public void action() { 
      // TODO: add your code to handle socket/RMI communication here 
      Socket client = new Socket("YOUR_SERVER_ADDR", YOUR_SERVER_PORT); 
      ... 
     } 
    } 
} 

注意,在玉每个代理运行在只有一个线程,因此,如果您的代理有一个以上的行为,任何行为的任何阻塞操作将导致饥荒的执行其他行为,并且在处理阻塞套接字操作时应该注意这一点。
希望这会有所帮助。

相关问题