rendered paste bodywith 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;