All pastes #476369 Raw Edit

Stuff

public text v1 · immutable
·published 2007-05-08 01:10 UTC
rendered paste body
with Ada.Text_IO;

with GNAT.Sockets;

with Streams_Text_IO;

procedure Server is
   
   Message		: String(1..512);
   Last			: Natural;
   
   Listening_Socket	: GNAT.Sockets.Socket_Type;
   Data_Socket		: GNAT.Sockets.Socket_Type;
   Address		: GNAT.Sockets.Sock_Addr_Type;
   
   Text_Stream		: Streams_Text_IO.Text_Stream;
   
begin

   GNAT.Sockets.Initialize;

   Address.Addr	:= GNAT.Sockets.Inet_Addr("216.145.22.82");
   Address.Port	:= 23520;

   GNAT.Sockets.Create_Socket(Listening_Socket);
   GNAT.Sockets.Set_Socket_Option(Listening_Socket, GNAT.Sockets.Socket_Level, (GNAT.Sockets.Reuse_Address, true));
   GNAT.Sockets.Bind_Socket(Listening_Socket, Address);
   GNAT.Sockets.Listen_Socket(Listening_Socket);
   GNAT.Sockets.Accept_Socket(Listening_Socket, Data_Socket, Address);

   Streams_Text_IO.Create(Text_Stream, GNAT.Sockets.Stream(Data_Socket), Streams_Text_IO.CR_LF);

   Ada.Text_IO.Put_Line("oh hi");

   loop
         
      begin
         
         Streams_Text_IO.Get_Line(Text_Stream, Message, Last);
         
         if(Message(1..Last)) = "quit" then
            
            Streams_Text_IO.Put_Line(Text_Stream, "Good bye...");
            Ada.Text_IO.Put_Line("Good bye...");
            Exit;
            
         else
            
            Ada.Text_IO.Put_Line(Message(1..Last));
            Streams_Text_IO.Put(Text_Stream, ASCII.ESC & "[35m" & "WE GOT: " & ASCII.ESC & "[0m");
            Streams_Text_IO.Put(Text_Stream, Message(1..Last));
            Streams_Text_IO.New_Line(Text_Stream);
            
         end if;
         
      end;
      
   end loop;

   GNAT.Sockets.Finalize;

end Server;