Mercurial > repos > awetv
view server/awetv/src/aweconn.erl @ 0:db5c7047ef0e default tip
Initial commit
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Fri, 21 Jun 2013 22:09:34 -0700 |
parents | |
children |
line wrap: on
line source
-module(aweconn). -behavior(gen_server). -export([start/1, init/1, handle_call/3, handle_cast/2, handle_info/2]). start(Socket) -> {ok, Pid} = gen_server:start(?MODULE, [], []), set_socket(Pid, Socket). set_socket(Pid, Socket) -> ok = gen_tcp:controlling_process(Socket, Pid), gen_server:cast(Pid, {set_socket, Socket}). init(_Args) -> io:format("aweconn starting~n"), {ok, no_sock}. handle_call(_Msg, _From, State) -> {noreply, State}. handle_cast({set_socket, NewSocket}, Socket) -> io:format("aweconn got socket~n"), inet:setopts(NewSocket, [{active, true}]), State = case Socket of no_sock -> NewSocket; Old -> gen_tcp:close(Old), NewSocket end, {noreply, State}; handle_cast(_, State) -> {noreply, State}. handle_info({tcp, Socket, Data}, State) -> io:format("Received: ~p~n", [Data]), gen_tcp:send(Socket, Data), {noreply, State}; handle_info(_Msg, State) -> {noreply, State}.