Advertisement
Guest User

Untitled

a guest
Sep 12th, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Erlang 1.21 KB | None | 0 0
  1. -module(telnet).
  2. -compile(export_all).
  3.  
  4. start(Num,LPort) ->
  5.     case gen_tcp:listen(LPort,[{active, false},
  6.                                {packet,2}]) of
  7.         {ok, ListenSock} ->
  8.             start_servers(Num,ListenSock),
  9.             {ok, Port} = inet:port(ListenSock),
  10.             {ListenSock,Port};
  11.         {error,Reason} ->
  12.             {error,Reason}
  13.     end.
  14.  
  15. start_servers(0,_) ->
  16.     ok;
  17. start_servers(Num,LS) ->
  18.     spawn(?MODULE,server,[LS]),
  19.     start_servers(Num-1,LS).
  20.  
  21. server(LS) ->
  22.     case gen_tcp:accept(LS) of
  23.         {ok,S} ->
  24.             io:format("accepted"),
  25.             loop(S),
  26.             server(LS);
  27.         Other ->
  28.             io:format("accept returned ~w - goodbye!~n",[Other]),
  29.             ok
  30.     end.
  31.  
  32. loop(S) ->
  33.     inet:setopts(S,[{active,once}]),
  34.     receive
  35.         {tcp,S,Data} ->
  36.             io:format("Got ~p", [Data]),
  37.             Answer = io_lib:format("Got ~p", [Data]),
  38.             gen_tcp:send(S,Answer),
  39.             loop(S);
  40.         {tcp_closed,S} ->
  41.             io:format("Socket ~w closed [~w]~n",[S,self()]),
  42.             ok;
  43.         Unexpected ->
  44.             io:format("Unexpected ~p", [Unexpected])                                
  45.     end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement