gpt4 book ai didi

erlang - 如何连接到使用短名称的 Erlang 节点?

转载 作者:行者123 更新时间:2023-12-04 14:59:01 25 4
gpt4 key购买 nike

当我跑 erl -sname foo ,创建的节点名称使用主机名,而不是“localhost”,因此生成为例如 foo@roger-pc .

然后我register(shell, self()) ,我可以从另一个节点( erl -sname bar )向它发送消息,如下所示:

{shell, 'foo@roger-pc'} ! {hello, world}.

但是如果我使用 {shell, foo} ! {knock, knock} 就不行了.永远不会收到消息。

如何连接到使用短名称的同一台 PC 上的 Erlang 节点?或者:如何导出目标节点名称的“@roger-pc”部分?或者:我应该使用 erl -name foo@localhost注册一个长名字?

一些背景:我正在写一个脚本,它产生一个 erl进程,我希望能够将来自该操作系统进程的消息发送回原始脚本。

最佳答案

您可以为 sname 明确指定“localhost”。

第一个 shell

erl -sname ax@localhost
register(rcvr, self()).

第二 shell
erl -sname bx@localhost
net_kernel:connect_node(ax@localhost).
{rcvr, ax@localhost} ! hello.

和第一个 shell
(ax@localhost)7> flush().
Shell got hello
ok

关于erlang - 如何连接到使用短名称的 Erlang 节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22202204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com