All pastes #373858 Raw Edit

Someone

public text v1 · immutable
#373858 ·published 2007-02-27 01:38 UTC
rendered paste body
with Ada.Text_IO;
with GNAT.Sockets;

procedure Server is
   
   package Text		renames Ada.Text_IO;
   package Socket	renames GNAT.Sockets;
   
   Server_Socket	: Socket.Socket_Type;
   Listening_Socket	: Socket.Socket_Type;
   Address		: Socket.Sock_Addr_Type;
   Channel		: Socket.Stream_Access;
   
begin
 
   Socket.Initialize;

   Address.Addr := Socket.Inet_Addr("127.0.0.1");
   Address.Port := 6059;

   Socket.Create_Socket(Server_Socket);
   Socket.Set_Socket_Option(Server_Socket, Socket.Socket_Level, (Socket.Reuse_Address, True));
   Socket.Bind_Socket(Server_Socket, Address);
   Socket.Listen_Socket(Server_Socket);
   Socket.Accept_Socket(Server_Socket, Listening_Socket, Address);
   
   Channel := Socket.Stream(Listening_Socket);
 
   Text.Put_Line("Listening...");

   loop 
      if String'Input(Channel) = "quit" then
         Text.Put_Line("Good bye...");
         Exit;
      else
         Text.Put_Line(String'Input(Channel));
         String'Output(Channel, "Message recieved.");
      end if;
   end loop;
   
   Socket.Free(Channel);
   Socket.Close_Socket(Listening_Socket);
   Socket.Close_Socket(Server_Socket);
   Socket.Finalize;

end Server;