0

我想将 erlang 连接到外部 C# 程序。我知道有多种方法可以做到这一点,1)使用端口(由 OTP 提供),2)TCP/UDP/网络套接字,3)os:cmd 等。选项 1 和 3 假设 erlang 正在启动这些程序,如果您只想与外部程序交互,选项 2 需要大量设置。

问题是:erlang 是否允许创建端口并将其连接到已经运行的程序?我知道这会引入一些有趣的安全问题,但这个想法听起来是可行的,所以我想我会看看之前是否有人尝试过这样做。

谢谢

4

2 回答 2

1

它几乎只有您可以使用的套接字,或者映射一些共享内存并从 NIF 或端口驱动程序访问它。但是共享内存对于故障隔离不是很好。

如果可以将您的外部程序作为端口启动,这将为您带来在所有者进程受到监督时自动重启的优势。

另一种可能性是使用 C 节点,或者在您的情况下可能是 C# 节点,即从不同语言的程序中讲 Erlangs 分发协议。

于 2013-08-25T20:19:44.263 回答
0

还有另一种选择,我个人不推荐,但它仍然存在;CORBA http://www.erlang.org/doc/man/corba.html(通用对象请求代理架构)。

于 2013-08-25T21:10:51.540 回答