erlang蜗牛学习中(三)

test3.erl

理清楚了gen_server和gen_tcp之间的关系。

gen_server仅仅是一个通用模型。如果编写socket,还是需要gen_tcp。

gen_server不仅仅处理c/s,而且module之间也可以使用gen_server来进行交互处理。

 

-module(test3).

-export([ttt/0]).

ttt()->
        start_server().

start_server()->
        {ok,ListenSocket}= gen_tcp:listen(8888,[{packet,0},{active,false}]),
        {ok,Socket}=gen_tcp:accept(ListenSocket),
        {ok,_Bin}=loop(Socket,[]),
        gen_tcp:close(Socket),
        io:format("~p~n",[_Bin]).
loop(Socket,Bs)->
        case gen_tcp:recv(Socket,0) of
                {ok,Packet}->
                        io:format("ok read~p~n",[Packet]),
                        loop(Socket,[Bs,Packet]);
                {error,closed}->
                        io:format("error closed~n"),
                        {ok,Bs};
                {erorr,_Reason}->
                        io:format("error Reason~n"),
                        {ok,Bs}

        end.
发表评论?

0 条评论。

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>