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.
prev parent 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