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 条评论。