erlang:UNIX 域套接字支持吗?
有没有办法直接从 Erlang 访问 UNIX 域套接字(例如 /var/run/dbus/system_bus_socket ),而无需借助第三方驱动程序?
Is there a way to access UNIX domain sockets (e.g. /var/run/dbus/system_bus_socket ) directly from Erlang without resorting to a third-party driver?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
Erlang/OTP 仅附带用于 tcp 和 udp 套接字的驱动程序。所以...
不。
第三方驱动程序
Erlang/OTP comes with drivers for tcp and udp sockets only. So...
No.
Third part drivers
在 Erlang/OTP 19.0 中,UNIX 套接字现已可用,如自述文件中所述 :
示例:
lsock.erl:
下面演示了其结果:
In Erlang/OTP 19.0, UNIX Sockets are now available, as stated in the readme:
Example:
lsock.erl:
And the following demonstrates its results:
nanomsg
库 支持 Unix 域套接字,并且enm
驱动程序 为nanomsg
提供 Erlang 语言绑定。例如,要打开请求/响应协议的响应端并绑定到 Unix 域套接字地址:
这里,
Rep
是一个nanomsg
套接字。它支持send
和recv
以及所有常见的 Erlang{active, true |假 |常规 Erlang TCP/SCTP/UDP 套接字提供的 N}
模式等。有关更多详细信息,请参阅enm
github README 。The
nanomsg
library supports Unix domain sockets, and theenm
driver provides an Erlang language binding fornanomsg
.For example, to open the response side of a request/response protocol and bind to a Unix domain socket address:
Here,
Rep
is ananomsg
socket. It supportssend
andrecv
as well as all the usual Erlang{active, true | false | N}
modes, etc. that regular Erlang TCP/SCTP/UDP sockets provide. For more details consult theenm
github README.如果你想接收http响应,你可以使用hackney,因为hackney提供了对UNIX套接字的支持。
hackney:get<<"http+unix://path_to_sock_file.sock">>
You can use hackney if you want to recieve http response as hackney provides support to UNIX socket .
hackney:get<<"http+unix://path_to_ sock_file.sock">>