26 lines
642 B
Erlang
26 lines
642 B
Erlang
-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.
|