При создании экземпляра OtpNode какой узел это? Это похоже на erl -sname xxx или как elr -name xxx?Инициализация Jinterface OtpNode -name или -sname flag
ответ
Он работает как «имя». По крайней мере, согласно следующему примеру.
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
Спасибо. Поэтому, если я полагаю, что если я делаю OtpNode («[email protected]», «cookie»), то он будет эквивалентен -name. Ну, я не знаю. Если я запустил erl -name, они не работают. На самом деле узел java все еще считает, что это узел «sname». Как я могу заставить экземпляр java OtpNode вести себя как узел erl -name? – Paralife
Из кода Java можно подключиться к узлам Erlang началась с обеих -name и - SNAME. Только в другом направлении это сложно (и у меня нет ответа на это). Поэтому, если вы можете выполнить соединение со стороны Java, проблема решена.
Вы ссылаетесь на узел OTP? – jldupont
Я имею в виду, когда я это делаю: OtpNode node = new OtpNode (nodeName, cookie), то это эквивалентно созданию узла erlang с именем -sname nodeName или с именем nameName? – Paralife