comp.lang.ada
 help / color / mirror / Atom feed
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
-------------------------



  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