问题描述
- Erlang 建立TCP连接后,怎么样从返回的Socket获取客户端ip和端口?
-
代码如下,服务端在2345端口监听,accept到客户端连接后,返回{ok, Socket}.
start() ->{ok, Listen} = gen_tcp:listen(2345, [binary, {packet, 4}, {reuseaddr, true}, {active, true}]),
{ok, Socket} = gen_tcp:accept(Listen).
问题是在成功accept后,我想获取客户端的ip和端口号,是否可以通过返回的Socket提取出来?
解决方案
{ok, ClientSocket} = gen_tcp:accept(State#client_state.socket_fd),
{ok,{IP_Address,Port}} = inet:peername(ClientSocket),
io:format("[~p][~p] ~n", [IP_Address, Port]),
时间: 2024-12-29 01:07:29