echo_protocol.erl 564 B

123456789101112131415161718192021
  1. %% Feel free to use, reuse and abuse the code in this file.
  2. -module(echo_protocol).
  3. -export([start_link/4, 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.