<div dir="ltr">Hello,<br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Oct 16, 2017 at 3:18 PM, Danil Zagoskin <span dir="ltr"><<a href="mailto:z@gosk.in" target="_blank">z@gosk.in</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br>Before calling inet:sockname on a port first make sure it's inet_tcp or inet_udp.<div>For example,</div><div>[{inet:sockname(P), erlang:port_info(P, connected)} || P <- erlang:ports(), erlang:port_get_data(P) == inet_tcp].<br></div><div><br></div><div>You also can filter by name from erlang:port_info/1:<br>[{inet:sockname(P), erlang:port_info(P, connected)} || P <- erlang:ports(), erlang:port_info(P, name) == {name,"tcp_inet"}].<br></div><div><br></div></div></blockquote><div><br></div><div>Note that even this approach is not future proof as it assumes that tcp connection are ports. Something which we are planning to change in the future.</div><div><br></div><div>Lukas</div></div></div></div>