问题标签 [erlang-ports]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
203 浏览

erlang - Erlang C 端口 - 串行或并行执行?

Erlang 端口和线程安全

“但是,对于端口,“控制过程”充当序列化层(如以一系列方式排列),这意味着请求一个接一个地处理,而不是一次处理。此外,我相信(但不确定) 所使用的通信协议端口也需要此串行执行。”

如果我启动大量 Erlang 端口进程,每个进程都连接到同一个 C 驱动程序,有人知道 C 代码将由并行 Erlang 进程串行还是并行执行?(我怀疑是系列)

谢谢

0 投票
0 回答
109 浏览

linux - erlang如何将退出状态返回给linux

当我尝试通过 erlang SSH 到 Linux 中的 IP 时。SSH 正在成功,但是在尝试检查 ssh 的退出状态时,它显示 255,这被视为失败案例。

但是当我尝试在不使用 erlang 的情况下 ssh 到 IP 时。它在成功的情况下返回 0。

你能告诉我erlang如何将退出状态发送到linux。我只想知道哪些文件负责将退出状态发送到 linux。

提前致谢。

0 投票
1 回答
426 浏览

erlang - 在不牺牲可伸缩性的情况下,在 Erlang 中执行计算密集型任务的最佳方法是什么?

Erlang 互操作性指南讨论了不同的互操作性机制。以下是我的结论:

  • 端口和 Erl_Interface 程序:操作系统调度,限制可扩展性。

  • 端口驱动程序:很危险,因为端口驱动程序崩溃也会导致模拟器崩溃。

  • C 节点:节点服务器需要像 Erlang 应用程序一样扩展,以避免牺牲可扩展性。

  • NIF:Loic很好地总结了它们。

一些人提倡使用 OpenCL,基本上将资源匮乏的计算委托给 GPU,同时让 Erlang 模拟器拥有 CPU。这听起来棒极了,但是你需要你的服务器有一个合适的 GPU。

使用 JInterface 并与为每个请求生成一个线程的 Java 进程通信可能是一种选择。

那么有没有人遇到过经过实践测试并证明效果很好的解决方案?

0 投票
11 回答
15105 浏览

erlang - Erlang 机器立即停止(分发名称冲突?)。服务未重新启动,因为 OnFail 设置为忽略

我正在使用 RabbitMQ。由于某种原因,rabbitMQ 服务在您启动后立即停止。我在事件日志中看到以下错误:

有人告诉我运行这个命令:erl -sname rabbit

此命令生成以下输出:

我不确定如何解释这个输出。我想知道该错误是否特定于 RabbitMQ 或 erlang。

我不知道如何进行。请建议。

0 投票
2 回答
699 浏览

erlang - 如何通过 ID 获取 Erlang 端口?

当我有一个 Erlang 进程 ID、使用pid/3list_to_pid/1函数(在内部做同样的事情)时,我可以获取该进程以用于调试目的。

所以问题是;端口呢?

有很多函数接口可以同时接受process()数据port()类型,比如register/2. 所以我需要知道是否有办法通过他们的ID(例如#Port<0.567>)来获取端口,比如进程。是否被禁止?如果是这样,有什么理由吗?

0 投票
1 回答
241 浏览

erlang - erlang中进程之间的消息传递?

如何通过 Erlang 中的消息传递将列表的所有元素从原始进程一个一个发送到另一个进程?

0 投票
1 回答
263 浏览

sockets - 如果达到超时,gen_tcp:recv/3 是否会关闭套接字?

我目前有一个处理来自客户端的多个连接的服务器,以及使用两个连接连接到服务器的客户端。我的客户端有两个进程分别处理与服务器之间的发送和接收,但不能同时处理两者。我目前遇到的问题是当我想关闭套接字时,我的阅读过程卡在了gen_tcp:recv/2块上。如果我设置了超时,则在达到超时时套接字将关闭。我的问题是,是否可以进行gen_tcp:recv/3不关闭套接字的调用。
这就是我的阅读过程。

recv/2正如您在此处看到的,如果没有读取任何内容,该进程将永远无法收到关闭。

0 投票
1 回答
158 浏览

elixir - 端口消息返回意外进程

我有一个简单的端口应用程序(字面意思是Erlang -- Ports 文档中的示例)和一个控制其使用的 GenServer。

GenServer 可以很好地与 C 应用程序通信,但它没有收到响应,iex 或其主管会收到。如果我flush从 iex 打电话,我会看到预期的消息。

如果我创建一个单独的模块并从中生成一个接收循环,它仍然不会收到端口响应消息。

我有一种感觉,我错误地打开了端口,但无法证明这一点。有什么明显的我在搞砸吗?

0 投票
0 回答
402 浏览

erlang - 从 Erlang 代码调用 Python 函数

我正在研究 MQTT 代理 ( http://www.emqtt.io ),它是用 Erlang 编写的。我有一个用例,我需要从用 erlang 编写的 emqtt 代理代码中调用我的一个 python 模块。

我已经检查了谷歌关于erlport ( http://erlport.org/ ) 的信息,它用于 erlang 和 python 之间的端口通信。它在 erlang shell 中运行良好,但是当我在 emqtt erlang 代码中使用它时,它就不起作用了。它抛出如下所示的错误

我们正在从 emqtt 插件代码中调用 python 模块,代码更改如下所示

请帮助我们。

0 投票
1 回答
309 浏览

erlang - Erlang : gen_server - 回复两个客户端

作为一个新手,使用 gen_server 编写一个玩具匹配(交易)引擎。

一旦发生交易/匹配,需要通知双方客户。

文档说:

类型:

当无法在 的返回值中定义回复时,gen_server 可以使用此函数显式向调用call/2,3或的客户端发送回复。multi_call/2,3,4Module:handle_call/3

Client 必须是提供给回调函数的 From 参数。Reply 是一个任意项,将作为call/2,3ormulti_call/2,3,4

返回值 Result 没有进一步定义,应始终被忽略。

鉴于上述情况,如何向其他客户端发送通知。

行动顺序示例