2009-10-20 2 views
3

При создании экземпляра OtpNode какой узел это? Это похоже на erl -sname xxx или как elr -name xxx?Инициализация Jinterface OtpNode -name или -sname flag

+0

Вы ссылаетесь на узел OTP? – jldupont

+0

Я имею в виду, когда я это делаю: OtpNode node = new OtpNode (nodeName, cookie), то это эквивалентно созданию узла erlang с именем -sname nodeName или с именем nameName? – Paralife

ответ

2

Он работает как «имя». По крайней мере, согласно следующему примеру.

TryOTP.java (импорт опущены на цели)

public class TryOTP { 
    public void start() { 
     OtpNode node = null; 

     try { 
      node = new OtpNode("[email protected]", "zed"); // name, cookie 
     } catch (IOException ex) { 
      System.exit(-1); 
     } 

     System.out.println("Connected to epmd..."); 

     if (node.ping("[email protected]", 2000)) { 
      System.out.println("[email protected] is up."); 
     } else { 
      System.out.println("[email protected] is down"); 
     } 

     OtpMbox mbox = node.createMbox("mbox"); 

     while (true) { 

      OtpErlangObject o = null; 
      try { 
       o = mbox.receive(); 
      } catch (OtpErlangDecodeException ex) { 
       System.out.println("Received message could not be decoded: " + ex); 
       continue; 
      } catch (OtpErlangExit ex) { 
       System.out.println("Remote pid " + ex.pid() + " has terminated."); 
       continue; 
      } 
      System.out.println("Received: " + o); 
     } 
    } 

    public static void main(String[] args) 
    { 
     System.getProperties().setProperty("OtpConnection.trace", "3"); 
     new TryOTP().start(); 
    } 

} 

Запуск оболочки Эрланга:

erl -sname [email protected] -setcookie zed 

([email protected])1> net_adm:ping([email protected]). 
pong 
([email protected])2> {mbox, [email protected]} ! hello. 
hello 
+0

Спасибо. Поэтому, если я полагаю, что если я делаю OtpNode («[email protected]», «cookie»), то он будет эквивалентен -name. Ну, я не знаю. Если я запустил erl -name, они не работают. На самом деле узел java все еще считает, что это узел «sname». Как я могу заставить экземпляр java OtpNode вести себя как узел erl -name? – Paralife

1

Из кода Java можно подключиться к узлам Erlang началась с обеих -name и - SNAME. Только в другом направлении это сложно (и у меня нет ответа на это). Поэтому, если вы можете выполнить соединение со стороны Java, проблема решена.

 Смежные вопросы

  • Нет связанных вопросов^_^