comp.lang.ada
 help / color / mirror / Atom feed
From: Andrew Shvets <andrew.shvets@gmail.com>
Subject: Re: TCP Server & Client
Date: Sun, 25 Mar 2018 12:17:41 -0700 (PDT)
Date: 2018-03-25T12:17:41-07:00	[thread overview]
Message-ID: <9989fdfe-3c88-449f-91c5-f3059c17d992@googlegroups.com> (raw)
In-Reply-To: <ly8tagfttm.fsf@pushface.org>

On Sunday, March 25, 2018 at 4:22:32 AM UTC-4, Simon Wright wrote:
> Andrew Shvets <an....@gmail.com> writes:
> 
> > procedure TCP_Client is
> [...]
> >   GNAT.Sockets.Create_Socket(Socket, GNAT.Sockets.Family_Inet, GNAT.Sockets.Socket_Stream);
> 
> >   GNAT.Sockets.Set_Socket_Option(Socket, GNAT.Sockets.Socket_Level, (GNAT.Sockets.Reuse_Address, True));
> 
> >   GNAT.Sockets.Send_Socket(Socket, Data, Last, Address);
> 
> If you look at the spec of GNAT.Sockets for a long time you will see
> that there are 3 versions of Send_Socket, only 2 of which I would expect
> to use, and you've chosen the wrong one (the last, datagram,
> version). You need the second:
> 
>    procedure Send_Socket
>      (Socket : Socket_Type;
>       Item   : Ada.Streams.Stream_Element_Array;
>       Last   : out Ada.Streams.Stream_Element_Offset;
>       Flags  : Request_Flag_Type := No_Request_Flag);
> 
> More importantly, you've left out the Connect_Socket call (which is what
> the server Accept_Socket call is waiting for).
> 
> Check out the commentary at the beginning of g-socket.ads, look for
> 'task body ping'.
> 
> 
> Also, in TCP_Server, you should be calling Receive_Socket on Sock (the
> new socket which is actually connected to TCP_Client).

Thank you Simon.  That did the trick.


      reply	other threads:[~2018-03-25 19:17 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-25  4:04 TCP Server & Client Andrew Shvets
2018-03-25  8:22 ` Simon Wright
2018-03-25 19:17   ` Andrew Shvets [this message]
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox