All pastes #243581 Raw Edit

Something

public text v1 · immutable
·published 2006-11-08 17:55 UTC
rendered paste body
start_link(Port) ->
    {ok, proc_lib:spawn_link(?MODULE, init, [Port])}.

%%--------------------------------------------------------------------

%% Open a socket on Port. If it fails, try again.
%% Then go into accept-loop (see loop/1)
init(Port) ->
    Response = gen_tcp:listen(Port, [list, {packet, 0},
                                     {active, false}]),
    case Response of
        {ok, LSock} ->
            io:format("tcp_listener: socket opened on port ~p~n", [Port]),
            loop(LSock);
        {error, Reason} ->
            io:format("tcp_listener: listen failed with reason ~p~n", [Reason]),
            io:format("tcp_listener: Will try again in 5 seconds...~n"),
            timer:sleep(5000),
            init(Port);
        _ ->
            io:format("tcp_listener: listen returned wierd.~n")
    end.


%% Accepts incoming connections, and creates a new session when a socket
%% is established. Nothing is read from the socket.
loop(LSock) ->
%%    io:format("in tcp_listener loop~n"),
    case gen_tcp:accept(LSock) of
        {ok, Sock} ->
            %%{ok, _Pid} = ho_controller:create_session(Sock),
            %%{ok, _Pid} = io:format("tcp_listener: connection received on port                                                                              ~p~n", [Port]),
            %%{ok, _Pid} = io:format("tcp_listener: connection received on port                                                                              ~p ",Sock),
            io:format("tcp_listener: connection received on port ~n"),
            io:fwrite("tcp_listener: running in pid ~p\n", [self()]),

            tcp:do_recv(Sock, Netbuffer),

            io:write("tcp_listner: read ~p ~n",[Netbuffer]),
            gen_tcp:send(Sock,"999999"),
            loop(LSock);
        {error, closed} ->
            io:format("tcp_listener: going down!~n");
        X ->
            io:format("tcp_listener: got unhandled message ~p~n", [X])
    end.