在特定IP地址ERLANG上绑定UDP服务器

问题描述

我需要将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]),#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,1}}]),

如果您具有字符串格式的IP地址,则可以使用inet:parse_address/1将其解析为元组:

{ok,IpAddress} = inet:parse_address("127.0.0.1"),{ok,IpAddress}]),