2016-01-10 90 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"}