like that:
ip_address(Socket) ->
case inet:peername(Socket) of
{ok, {Ip, Port}} ->
io:format("ip ~p, port ~p~n", [Ip, Port]);
{error, Error} ->
io:format("error ~p~n", [Error])
end.
or you can use another function with two clauses:
ip_address(Socket) ->
ip_address_1(inet:peername(Socket)).
ip_address_1({ok, {Ip, Port}}) ->
io:format("ip ~p, port ~p~n", [Ip, Port]);
ip_address_1({error, Error}) ->
io:format("error ~p~n", [Error]).