minimart-benchmark-2017/echoserver.erl

26 lines
642 B
Erlang
Raw Normal View History

2014-05-04 20:36:59 +00:00
-module(echoserver).
-export([start/0]).
start() ->
{ok, LSock} = gen_tcp:listen(5999, [{active, true}, {packet, line}, {reuseaddr, true}]),
accept_loop(LSock).
accept_loop(LSock) ->
case gen_tcp:accept(LSock) of
{ok, Sock} ->
gen_tcp:controlling_process(Sock, spawn(fun () -> connection(Sock) end)),
accept_loop(LSock)
end.
connection(Sock) ->
receive
{tcp, _, Line} ->
gen_tcp:send(Sock, Line),
connection(Sock);
{tcp_closed, _} ->
ok;
Other ->
error_logger:error_report({connection, unhandled, Other})
end.