Determining if a client PC has an Internet connection
Fredrik Lundh
fredrik at pythonware.com
Sun Sep 19 05:46:18 EDT 2004
Cliff Wells wrote:
> I'm writing an application that needs to know if an Internet connection
> is available. Basically, I want to have something similar to what a lot
> of email clients have, where the app can work either in "online" or
> "offline" mode (it keeps a cache of downloaded info, so it can work
> without a connection if needed).
on windows, you can use InternetCheckConnection:
http://msdn.microsoft.com/library/en-us/wininet/wininet/internetcheckconnection.asp
(it should be available via win32all; if not, use ctypes).
> The basic problem is this: it downloads info (RSS feeds) from a variety
> of sources. Any one (or more) of these could conceivably fail to
> download, so simply waiting for a timeout isn't sufficient (not easy to
> differentiate between having a bad server and the client not having a
> connection). Further, if it waits (say 30s) for the timeout to occur,
> this is going to be a bit annoying to the user.
another solution would be to use asynchronous sockets, and only up-
date the local cache when you get new data from the server (set a flag
in the user interface if the server times out; if all channels are flagged,
the users will probably figure things out by themselves). bits and pieces:
http://effbot.org/zone/effnews-1.htm (asynchronous client)
http://effbot.org/zone/effnews-2.htm (parsing)
http://effbot.org/zone/effnews-3.htm (connection management)
</F>
More information about the Python-list
mailing list