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 declare Message : constant String := String'Input (Channel); begin if Message = "quit" then Text.Put_Line("Good bye..."); Exit; else Text.Put_Line(Message); String'Output(Channel, "Message recieved."); end if; end; end loop; Socket.Free(Channel); Socket.Close_Socket(Listening_Socket); Socket.Close_Socket(Server_Socket); Socket.Finalize; end Server;