All pastes #476274 Raw Edit

Someone

public text v1 · immutable
·published 2007-05-07 23:34 UTC
rendered paste body
with Ada.Text_IO;
--with Ada.Strings.Unbounded;

with GNAT.Sockets;

with Streams_Text_IO;

procedure Server is

   --   Message		: Ada.Strings.Unbounded.Unbounded_String;
   
   Listening_Socket	: GNAT.Sockets.Socket_Type;
   Data_Socket		: GNAT.Sockets.Socket_Type;
   Address		: GNAT.Sockets.Sock_Addr_Type;
   Stream		: GNAT.Sockets.Stream_Access;
   
   Text_Stream		: Streams_Text_IO.Text_Stream;
   Line_Terminator	: Streams_Text_IO.Line_Terminator;
   
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);

   Stream := GNAT.Sockets.Stream(Data_Socket);

   Streams_Text_IO.Create(Text_Stream, Stream, Line_Terminator);

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

   loop
      
      declare
         
         Message	: String(1..512);
         Last		: Natural;
         
      begin
         
         Streams_Text_IO.Get_Line(Text_Stream, Message, Last);
         
         if(Message) = "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);
            Streams_Text_IO.Put(Text_Stream, "WE GOT: ");
            Streams_Text_IO.Put(Text_Stream, Message);
            Streams_Text_IO.New_Line(Text_Stream);
            
         end if;
         
      end;
      
   end loop;

   GNAT.Sockets.Finalize;

end Server;