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