在特定 IP 地址 ERLANG 上绑定 UDP 服务器
Bind UDP server on specific ip address ERLANG
我需要将 UDP 服务器绑定到特定的 IP 地址。现在我正在创建一个像这样的 UDP 服务器
start_link(N,Param) ->
gen_server:start_link({local,?SERVER},?MODULE, [N,Param], []).
%% ------------------------------------------------------------------
%% gen_server Function Definitions
%% ------------------------------------------------------------------
%% opens UDP listening socket. May be sockets will be more than 1
init([N,ListenPort]) ->
Port=ListenPort+N-1,
inets:start(),
{ok,Socket}=gen_udp:open(Port,[{active,once},{reuseaddr,true},binary]),
{ok, #state{port=Port,socket=Socket,in=0,out=0}}.
其中 PARAM 是 UDP 服务器端口。
我不知道如何将它绑定到某个 IP。
有人可以帮我吗?
使用 ip
选项,将地址作为元组传递:
{ok,Socket}=gen_udp:open(Port,[{active,once},{reuseaddr,true},binary,{ip,{127,0,0,1}}]),
如果你有字符串格式的IP地址,你可以使用inet:parse_address/1
将它解析成一个元组:
{ok, IpAddress} = inet:parse_address("127.0.0.1"),
{ok,Socket}=gen_udp:open(Port,[{active,once},{reuseaddr,true},binary,{ip,IpAddress}]),
我需要将 UDP 服务器绑定到特定的 IP 地址。现在我正在创建一个像这样的 UDP 服务器
start_link(N,Param) ->
gen_server:start_link({local,?SERVER},?MODULE, [N,Param], []).
%% ------------------------------------------------------------------
%% gen_server Function Definitions
%% ------------------------------------------------------------------
%% opens UDP listening socket. May be sockets will be more than 1
init([N,ListenPort]) ->
Port=ListenPort+N-1,
inets:start(),
{ok,Socket}=gen_udp:open(Port,[{active,once},{reuseaddr,true},binary]),
{ok, #state{port=Port,socket=Socket,in=0,out=0}}.
其中 PARAM 是 UDP 服务器端口。 我不知道如何将它绑定到某个 IP。 有人可以帮我吗?
使用 ip
选项,将地址作为元组传递:
{ok,Socket}=gen_udp:open(Port,[{active,once},{reuseaddr,true},binary,{ip,{127,0,0,1}}]),
如果你有字符串格式的IP地址,你可以使用inet:parse_address/1
将它解析成一个元组:
{ok, IpAddress} = inet:parse_address("127.0.0.1"),
{ok,Socket}=gen_udp:open(Port,[{active,once},{reuseaddr,true},binary,{ip,IpAddress}]),