Erlang-连接到已经运行的外部程序



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

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

感谢

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

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

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

还有另一个选项,我个人并不推荐,但它仍然存在;CORBAhttp://www.erlang.org/doc/man/corba.html(公共对象请求代理体系结构)。

最新更新