echo_protocol.erl 515 B

123456789101112131415161718192021
  1. -module(echo_protocol).
  2. -export([start_link/4]).
  3. -export([init/4]).
  4. start_link(ListenerPid, Socket, Transport, Opts) ->
  5. Pid = spawn_link(?MODULE, init, [ListenerPid, Socket, Transport, Opts]),
  6. {ok, Pid}.
  7. init(ListenerPid, Socket, Transport, _Opts = []) ->
  8. ok = ranch:accept_ack(ListenerPid),
  9. loop(Socket, Transport).
  10. loop(Socket, Transport) ->
  11. case Transport:recv(Socket, 0, 5000) of
  12. {ok, Data} ->
  13. Transport:send(Socket, Data),
  14. loop(Socket, Transport);
  15. _ ->
  16. ok = Transport:close(Socket)
  17. end.