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;