我在Phoenix应用程序中使用:ranch来接收TCP包。
首先,我使用以下命令在服务器中创建了一个监听器:
:ranch.start_listener(tcp_echo, ranch_tcp, [{port, 5555}], echo_protocol, [] )如何在echo_protocol中打印客户端IP
发布于 2017-12-27 00:45:39
牧场包括一个sample echo application。
在echo_protocol.erl中,有一个初始化函数接受来自客户端的连接:
init(Ref, Socket, Transport, _Opts = []) ->
ok = ranch:accept_ack(Ref),
loop(Socket, Transport).您可以在此处显示客户端ip地址:
init(Ref, Socket, Transport, _Opts = []) ->
ok = ranch:accept_ack(Ref),
{ok, {IpAddress, _}} = inet:peername(Socket),
io:format("Client ~p~n", [IpAddress]),
loop(Socket, Transport).它将以如下格式出现:
Client {127,0,0,1}https://stackoverflow.com/questions/47979391
复制相似问题