From: Jano <nono@celes.unizar.es>
Subject: Re: [OT] Two sockets questions
Date: Wed, 7 May 2003 22:02:15 +0200
Date: 2003-05-07T22:02:15+02:00 [thread overview]
Message-ID: <MPG.192384b639c7bbc9896f9@News.CIS.DFN.DE> (raw)
In-Reply-To: 8765omaa6b.fsf@inf.enst.fr
Samuel Tardieu dice...
> Sure! I'll describe the process in C, I do not know whether
> GNAT.Sockets allows you to do all those steps:
>
> 1) Create your socket
> 2) Make it non-blocking
> 3) connect() will return immediately with either 0 (success), -1
> with errno set to EINPROGRESS or -1 with another error (real
> error).
> 4) If the result was -1/EINPROGRESS, do a select() on the socket for
> writing. When it tells you that you can write, write() 0 bytes. If
> there is no error (write() returns 0), then you are
> connected. Otherwise, you will get an error (typically
> -1/ENOTCONN).
Great! I must try these things.
> Jano> Second: I have a connected socket which I poll periodically for
> Jano> data. When there is no more data available and the other
> Jano> endpoint has closed the socket, I continue receiving 0 byte
> Jano> available but not notification of closed socket. It's only when
> Jano> I try to read/write that a exception is raised about the
> Jano> connection reset or something. Is there a mean to be aware that
> Jano> connection has been closed (after the available data is
> Jano> exhausted, I presume)?
>
> If you select() the socket for reading and select() tells you that
> there is data available and if read() returns 0 bytes, then this means
> that the other side has shutdown its sending part.
Mmm... The Gnat.Sockets package has a select binding... I wonder if it
behaves that way. I will obviously test it ;-)
A idea that comes to me: If I do a read for 0 bytes, will occur the
same? I mean, if connection is alive, nothing happens, and if it's dead,
error...
Many thanks!
--
-------------------------
Jano
402450.at.cepsz.unizar.es
-------------------------
next prev parent reply other threads:[~2003-05-07 20:02 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-05-07 18:03 [OT] Two sockets questions Jano
2003-05-07 18:22 ` Samuel Tardieu
2003-05-07 19:52 ` Stephen Leake
2003-05-07 20:08 ` David C. Hoos
2003-05-07 22:33 ` Jano
2003-05-08 9:10 ` Samuel Tardieu
2003-05-08 21:35 ` Jano
2003-05-09 8:14 ` Samuel Tardieu
2003-05-09 14:32 ` Jano
2003-05-10 14:06 ` Jano
2003-05-10 18:01 ` tmoran
2003-05-10 21:27 ` Samuel Tardieu
2003-05-11 18:01 ` tmoran
2003-05-08 17:48 ` Stephen Leake
2003-05-08 18:42 ` Samuel Tardieu
2003-05-08 21:41 ` Jano
2003-05-08 21:48 ` Jano
2003-05-08 22:35 ` tmoran
2003-05-09 14:42 ` Jano
2003-05-10 8:57 ` Tarjei T. Jensen
2003-05-10 16:55 ` Simon Wright
2003-05-11 18:23 ` Tarjei T. Jensen
2003-05-11 2:05 ` tmoran
2003-05-08 21:40 ` Jano
2003-05-07 20:02 ` Jano [this message]
2003-05-08 8:57 ` Samuel Tardieu
2003-05-08 21:39 ` Jano
2003-05-08 10:14 ` Preben Randhol
2003-05-08 11:09 ` Samuel Tardieu
2003-05-08 21:40 ` Jano
2003-05-09 8:19 ` Samuel Tardieu
2003-05-08 18:06 ` tmoran
2003-05-07 20:09 ` tmoran
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox