> Erlang中文手册 > port/1 返回一个套接字的本地端口号

inet:port/1

返回一个套接字的本地端口号

用法:

port(Socket) -> {ok, Port} | {error, any()}

内部实现:

-spec port(Socket) -> {'ok', Port} | {'error', any()} when
      Socket :: socket(),
      Port :: port_number().

port(Socket) ->
    case prim_inet:sockname(Socket) of
	{ok, {_,Port}} -> {ok, Port};
	Error -> Error
    end.

返回一个套接字 Socket 的本地端口号。

获取由函数 gen_tcp:listen/2 建立的套接字所监听的端口:

{Rand, _RandSeed} = ranDOM:uniform_s(9999, erlang:now()),
Port = 40000 + Rand,
case gen_tcp:listen(Port, [binary, {packet, 0}, {active, false}]) of
    {ok, Socket} ->
        inet:port(Socket);
    _ ->
        socket_listen_fail
end.

本服务所监听的端口:

Socket = util:get_socket(),
inet:port(Socket).