Skip to content

Instantly share code, notes, and snippets.

@jakedouglas
Created May 21, 2010 19:03
Show Gist options
  • Save jakedouglas/409275 to your computer and use it in GitHub Desktop.
Save jakedouglas/409275 to your computer and use it in GitHub Desktop.
-module(gdemo_server).
-behavior(gen_server).
-export([start_link/0, connect/0]).
-export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]).
start_link() ->
gen_server:start_link({local, ?MODULE}, ?MODULE, [], []).
init(_Args) ->
process_flag(trap_exit, true),
{ok, []}.
-module(network_server).
-export([start/0, run_acceptor/2]).
start() ->
{ok, Master} = gdemo_server:start_link(),
{ok, Listen} = gen_tcp:listen(3000, [binary, {packet, raw}, {reuseaddr, true}, {active, true}]),
pass_listener(Listen, Master).
pass_listener(Listen, Master) ->
Pid = spawn(network_server, run_acceptor, [Listen, Master]),
ok = gen_tcp:controlling_process(Listen, Pid).
run_acceptor(Listen, Master) ->
link(Master),
io:format("Listening~n"),
{ok, Socket} = gen_tcp:accept(Listen),
pass_listener(Listen, Master),
run_socket(Socket).
@melito
Copy link

melito commented May 21, 2010

this the example thingie you've been hackin on ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment