DEV Community

voluntas
voluntas

Posted on

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

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}}
Enter fullscreen mode Exit fullscreen mode

port が優先されます。

Top comments (0)