Node.js erlang将http查询绑定到ip(或接口)

Node.js erlang将http查询绑定到ip(或接口),node.js,http,erlang,Node.js,Http,Erlang,在nodejs中,我们有http.request(options[,callback])和localAddress(用于绑定网络连接的本地接口)选项。这很有效。如何在Erlang中实现这一点?现在我对请求使用ibrowse,但这不是一个约束。我想我需要看看erlang中的普通http是如何工作的,但可能有人会遇到这种情况。erlang中的基本TCP提供了一个选项,您可以在其中声明特定接口(或套接字类型,以及其他一些内容) 如果我只想连接到某个远程主机:端口,则调用如下所示: {ok, Socke

在nodejs中,我们有http.request(options[,callback])和localAddress(用于绑定网络连接的本地接口)选项。这很有效。如何在Erlang中实现这一点?现在我对请求使用ibrowse,但这不是一个约束。我想我需要看看erlang中的普通http是如何工作的,但可能有人会遇到这种情况。

erlang中的基本TCP提供了一个选项,您可以在其中声明特定接口(或套接字类型,以及其他一些内容)

如果我只想连接到某个远程主机:端口,则调用如下所示:

{ok, Socket} = gen_tcp:connect(Host, Port, [])
如果我希望连接的本地端来自特定地址(例如,在这台计算机上192.168.5.23是wlan0,192.168.7.67是eth0),我可以执行以下操作:

{ok, Socket} = gen_tcp:connect(Host, Port, [{ifaddr, {192,168,5,23}}])
如果我想从特定端口连接,我会添加端口选项:

Options = [{ifaddr, {192, 168, 5, 23}}, {port, 11311}],
{ok, Socket} = gen_tcp:connect(Host, Port, Options),
那只是普通的TCP。在Erlang中编写HTTP/1.1客户机非常简单,根据您想要做的事情而定可能是理想的

还有一个内置的http客户机,名为(和其他一些功能更强/更干净的客户机,如和)。这些都使用与gen_tcp类似的参数,包括相同的可用性以及一个非常简单易用的特殊参数:

ok = inets:start(),
ok = httpc:set_options([{ip, {192, 168, 5, 23}}, {port, 11311}]),
{ok, Response} = httpc:request("http://zxq9.com/archives/1311"),

希望这些信息足够让您开始学习。

谢谢您的详细回答!