UDP
%%%-----------------------------------------------
%% coding: latin-1
%%% @author VVoooooooooo
%%% @copyright (C) 2018, <COMPANY>
%%% @doc
%%%
%%% @end
%%% Created : 27. 十二月 2018 18:21
%%%-------------------------------------------------------------------
-module(server).
-author("Administrator").
%% API
-export([start/0]).
-define(PORT,9527).
start()->
spawn(fun() -> server(?PORT) end).
server(Port) ->
case gen_udp:open(Port,[binary,{active,false}]) of
{ok,Socket}->
io:format("########server opened socket:~p~n#########",[Socket]),
loop(Socket);
{error, Reason} -> io:format("############ failed to ############~w~n",[Port]);
_ -> default
end.
loop(Socket) ->
inet:setopts(Socket, [{active, once}]),
receive
{udp,Socket,Host,Port,Bin} =Msg ->
io:format("#########server received:~p~n#########",[Msg]),
gen_udp:send(Socket,Host,Port,Bin),
loop(Socket)
end.
TCP
%% @author VVoooooooooo
%% @doc @todo Add description to tcp_acceptor.
-module(tcp_acceptor).
-behaviour(gen_server).
-export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]).
%% ====================================================================
%% API functions
%% ====================================================================
-export([start_link/1]).
start_link({LSock, Type})->
gen_server:start_link(?MODULE, {LSock, Type}, []).
%% =====&#