将UDP服务器绑定到特定IP地址ERLANG

dpiehjr4  于 2022-12-08  发布在  Erlang
关注(0)|答案(1)|浏览(294)

我需要将UDP服务器绑定到一个特定的IP地址。

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。有人能帮助我吗?

d6kp6zgx

d6kp6zgx1#

使用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}]),

相关问题