From: Simon Wright <simon@pushface.org>
Subject: Re: TCP Server & Client
Date: Sun, 25 Mar 2018 09:22:29 +0100
Date: 2018-03-25T09:22:29+01:00 [thread overview]
Message-ID: <ly8tagfttm.fsf@pushface.org> (raw)
In-Reply-To: 64541efa-41ea-464b-bb60-06719f3c56ad@googlegroups.com
Andrew Shvets <andrew.shvets@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).
next prev parent reply other threads:[~2018-03-25 8:22 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 [this message]
2018-03-25 19:17 ` Andrew Shvets
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox