All pastes #373878 Raw Edit

Something

public text v1 · immutable
#373878 ·published 2007-02-27 01:58 UTC
rendered paste body
--with Ada.Strings.Unbounded;
with Ada.Text_IO;
--with Ada.Text_IO.Unbounded_IO;
with GNAT.Sockets;

procedure Client is
   
   --package StrUnbound	renames Ada.Strings.Unbounded;
   package IO		renames Ada.Text_IO;
--   package UnboundIO	renames Ada.Text_IO.Unbounded_IO;
   package Socket	renames GNAT.Sockets;
  
   Address		: Socket.Sock_Addr_Type;
   Client_Socket	: Socket.Socket_Type;
   Channel		: Socket.Stream_Access;
--   UnboundCommand	: StrUnbound.Unbounded_String;
   Command		: String(1..100);
   Command_Last		: Natural;
   
begin
   
   Socket.Initialize;

   Address.Addr := Socket.Inet_Addr("127.0.0.1");
   Address.Port := 6059;

   Socket.Create_Socket(Client_Socket);
   Socket.Set_Socket_Option(Client_Socket, Socket.Socket_Level, (Socket.Reuse_Address, True));
   Socket.Connect_Socket(Client_Socket, Address);
   
   Channel := Socket.Stream(Client_Socket);
   
   IO.Put_Line("Say something...");
   
   loop
--      UnboundCommand := UnboundIO.Get_Line;
--      Command := StrUnbound.To_String(UnboundCommand);
	IO.Get_Line (Item => Command, Last => Command_Last);
	String'Output(Channel, Command (1 .. Command_Last));
	
      if Command (1 .. Command_Last) = "quit" then
         IO.Put_Line("Good bye...");
         Exit;
      else
         IO.Put_Line(String'Input(Channel));
	end if;
   end loop;
   
   Socket.Free(Channel);
   Socket.Close_Socket(Client_Socket);
   Socket.Finalize;
   
end Client;