views:

321

answers:

1

I would like to fetch the IP address and port number of an incoming TCP/IP connection. Unfortunately gen_tcp's accept and recv functions only give back a socket, while gen_udp's recv function also gives back the address information. Is there a straightforward way to collect address information belonging to a socket in Erlang?

+9  A: 

You need inet/peername 1. From the Erlang inet docs:

peername(Socket) -> {ok, {Address, Port}} | {error, posix()}

Types:

Socket = socket() Address = ip_address() Port = int()

Returns the address and port for the other end of a connection.

ire_and_curses