初试Erlang, 一个小例子
tcp_test.erl
-module(tcp_test). -export([start/0]). start() -> spawn(fun() -> start_listen() end). start_listen() -> {ok, Listen} = gen_tcp:listen(1234, [{packet, 0}, {active, true}]), Pid = spawn(fun() -> par_connect(Listen) end), gen_tcp:controlling_process(Listen, Pid). par_connect(Listen) -> {ok, Socket} = gen_tcp:accept(Listen), Pid = spawn(fun() -> par_connect(Listen) end), loop(Socket). loop(Socket) -> receive {tcp, Socket, Bin} -> case inet:peername(Socket) of {ok, {RemoteIP, _}} -> io:format("Accept connection from ~p~n", [RemoteIP]); {error, Why} -> exit(Why) end, io:format("Accept bin ~p~n", [Bin]), gen_tcp:send(Socket, "you say:" ++ [Bin] ++ "\r\n"), loop(Socket); Any -> io:format("Server ~p~n", [Any]), loop(Socket) end.
2010-03-21 15:42:16, 2932 reviews, comment
send to mailbox
gen_tcp的packet参数
MochiChat: 一个基于erlang的web聊天室(beta)
少女,不点下广告吗!
all by shitou
blog comments powered by Disqus