2016-01-10 56 views
5

我想读通过Unix域套接字(SOCK_STREAM)消息,但我很难找到做,在药剂的工作示例。我一直在努力使它与Erlang的procket库合作,但我除了麻烦之外什么都没有。UNIX域套接字的药剂

谁能告诉我,从一个药剂Unix域套接字读取工作的例子吗?

+0

我知道你问药剂的例子,但这里有一个关于Erlang的http://erlang.org/pipermail/erlang-questions/2009-March/042184从UNIX域套接字读取消息线程。 HTML。我猜想答案很可能是Elixir的一个自定义端口。 –

回答

3

Here是一个很好的例子,使用:procket

open功能从连接地址获取文件描述符{stdin, stdout}的元组,是IPv4,IPv6或Unix域套接字。

编辑:它在这里用来初始化一个端口,但使用http://elixir-lang.org/docs/stable/elixir/IO.html它很容易读取。

2

有用于Unix套接字香草二郎神也不在花好月圆的支持。

还是有几个解决方案,如C-扩展提供。 已经提到procket,其他的是afunix

我发现在afunix自述的例子非常简单,容易脑转化为药剂(记得要小写VAR和使用撇号'代替引号"!)。

[编辑]

二郎项目(只要螺纹钢-化的,无论是上述的)可以很容易地通过向DEPS以下元组添加到您的混合项目(无耻地促进提到无故afunix: ):

{:afunix, github: "tonyrog/afunix"}