Problem with socket

Grant Edwards grante at visi.com
Wed Apr 28 20:52:06 CEST 2004


On 2004-04-28, Thomas Hervé <therve at neocles.com> wrote:

> Ok I hope it's clear. My problem is that "select" only tests
> if there's data on the socket, and not the state of the
> socket.

That's not true.  If the socket is closed, it will return from
select as readable.

> I want to be able to know if socket is "alive" or something
> like that. But I don't want to make "send" in the client (stay
> passive). Then, if I know that my socket is closed or my link
> down, I can try to reconnect periodically.

You'll know if the socket is closed because select will mark it
as readable, and you'll get 0 bytes when you read it.

If you want to know if the network or the other host has "gone
away", set the SO_KEEPALIVE option on the socket.  That will
generate an error if the link is down. IIRC, it takes 75
minutes (or is it 150?) to time out after the other end goes
away.

-- 
Grant Edwards                   grante             Yow!  I wonder if there's
                                  at               anything GOOD on tonight?
                               visi.com            



More information about the Python-list mailing list