| | |
| | | -author('Bin Shen <23420800@qq.com>'). |
| | | -compile(export_all). |
| | | |
| | | -export([listen/1, loop/2]). |
| | | -import(handler,[doWork/2]). |
| | | -export([listen/1, loop/3]). |
| | | -import(handler,[doWork/3]). |
| | | |
| | | -define(TCP_OPTIONS, [binary, {packet, 0}, {active, false}, {reuseaddr, true}]). |
| | | |
| | |
| | | % Wait for incoming connections and spawn the echo loop when we get one. |
| | | accept(LSocket) -> |
| | | {ok, Socket} = gen_tcp:accept(LSocket), |
| | | spawn(fun() -> loop(Socket, <<>>) end), |
| | | spawn(fun() -> loop(Socket, <<>>, 0) end), |
| | | accept(LSocket). |
| | | |
| | | % Echo back whatever data we receive on Socket. |
| | | loop(Socket, Chain) -> |
| | | loop(Socket, Chain, Count) -> |
| | | |
| | | %% io:format("~p~n", [Chain]), |
| | | io:format("~p~n", [Count]), |
| | | |
| | | case gen_tcp:recv(Socket, 0) of |
| | | |
| | |
| | | %% loop(Socket); |
| | | |
| | | {ok, Data} -> |
| | | % io:format("recv ~p~n", [Data]), |
| | | % gen_tcp:send(Socket, Data), |
| | | %% io:format("recv ~p~n", [Data]), |
| | | %% gen_tcp:send(Socket, Data), |
| | | |
| | | %% io:format("recv ~p~n", [Data]), |
| | | %% |
| | |
| | | %% Y = [ integer_to_list(N, 16) || N <- X], |
| | | %% io:format("recv ~w~n", [Y]), |
| | | |
| | | L1 = byte_size(Chain), |
| | | L2 = byte_size(Data), |
| | | doWork(Socket, <<Chain:L1/binary, Data:L2/binary >>); |
| | | ChainLen = byte_size(Chain), |
| | | DataLen = byte_size(Data), |
| | | doWork(Socket, <<Chain:ChainLen/binary, Data:DataLen/binary >>, Count); |
| | | |
| | | %% loop(Socket); |
| | | {error, closed} -> |