udp - 在特定 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]),
{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}]),
推荐阅读
- android - 如何修复:Recyclerview 未显示在 Activity 中
- java - 为什么操作系统说内存足够时无法为jvm分配内存
- javascript - 如何排除 Firebase 数据库树中的某些键
- dataframe - 将 Julia DataFrames 列表写入文件
- certificate - 在 WCF 自定义发送适配器上设置 clientCredentials 端点行为
- typescript - 打字稿无法推断函数参数
- webpack-4 - 具有自己的块依赖项的动态模块导入
- python - 无法更改数组某些部分的值
- android - 如果服务器是 apollo graphql 服务器,从 android 应用程序上传文件的最佳方式是什么
- jenkins - Kotlin 在本地机器上正确编译项目,但通过 Jenkins 它抛出异常