【发布时间】:2010-12-24 02:12:22
【问题描述】:
我需要回答以下问题,以帮助了解我应该采用什么方法与 Erlang 交互。 SMP UNIX 机器上的 AFAIK Erlang 使用多进程方法。在这种情况下,它应该做相同的机器 IPC。
- Erlang 是否为 UNIX 使用 UNIX 域套接字?
Windows 是否使用命名管道?
如果它没有实现上述两种结构——即,没有用于 windows 的命名管道;它必须回退到 Windows 上的套接字。
上述原则是如何实现的,它们是使用面向消息、每个通道单线程、异步构造还是其他方式?
如果我上面的推理不正确,它是否使用主子树和所有其他进程通过主节点间接通信?
-- 编辑 1--
Link 到 erlang 二进制格式文档。
普遍的共识是 Unix 域套接字的性能优于 TCP/IP。我想我会尝试扩展 Erlang 以使用提供的更好的原语。我还强烈怀疑 TCP/IP 事件循环中没有使用 epol 和 windows IOPC —— 我会在审核完代码后回复。
另一个SO post 声称 Erlang 确实不支持 TCP 和 UDP 以外的任何东西。
有两个用于通信的Erlang库Erlang node -> c_node和c_node -> Erlang_node
Erlang module for sockets 允许在 UNIX 下打开 Unix Dom 套接字。
【问题讨论】:
标签: asynchronous erlang multithreading ipc portability