DEV Community

loading...

gen_tcp:listen/2 のポート指定について

voluntas profile image voluntas ・1 min read

gen_tcp:listen(0, []) とやるとエフェメラルポートが利用されます。
では gen_tcp:listen(0, [{port, 5000}]) とやるとどうなるでしょうか?

> {ok, Socket} = gen_tcp:listen(0, []).
{ok,#Port<0.6>}
> inet:sockname(Socket).
{ok,{{0,0,0,0},52766}}
> f().
ok
> {ok, Socket} = gen_tcp:listen(0, [{port, 5000}]).
{ok,#Port<0.7>}
> inet:sockname(Socket).
{ok,{{0,0,0,0},5000}}

port が優先されます。

Discussion

pic
Editor guide