@ Thorsten1867: Danke, Aber ich suche keine Möglichkeit, zu prüfen, ob eine Verbindung mit dem Internet allgemein besteht, sondern, ob ein bestimmter Client noch mit meinem Server verbunden ist.
Denn manchmal trennt sich der Client von allein und mein Programm stürzt bei dem Versuch
CloseNetworkConnection() einfach ab. Lasse ich aber die Verbindung bestehen habe ich bald hunderte/tausende offener und "toter" Verbindungen.
@ mk-soft: Ich kann ja die Verbindung nicht Serverseitig trennen. Warum? Wenn ein Internet Explorer zu mir connected und wir Daten austauschen, beendet er die Verbindung NICHT (so ist das IMHO auch normal). Beispielsweise der FireFox aber beendet die Verbindung nach dem Datenaustausch selbstständig (das ist IMHO nicht normal).
@ All: Nun, wo lieg das Problem? Ganz einfach: Ich arbeite mit dem derzeit aktuellsten HTTP-Protokoll 1.1. Dieses schlägt standardmäßig vor, dass Verbindungen aufrecht erhalten bleiben (Connection: Keep-Alive). So kann ein Client mehrere Dateien anfordern ohne für jede eine neue Verbindung öffnen zu müssen, wie es in HTTP 1.0 oder gar 0.9 war.
Ich sage dem CLienten jedoch immer "Connection: Close", um zu signalisieren, dass ich
nicht bereit bin, die Verbindung stehen zu lassen, der CLient soll sich 'ne neue Verbindung aufbauen, was ja auch alle brav machen. Der IE muss von mir aber gewaltsam getrennt werden, der FireFox trennt die Verbindung von sich aus.
Was soll ich jetzt machen? Darauf vertrauen, dass alle die Verbindung von allein schließen? Dann habe ich hinterher tausende tote Verbindungen (und diese zuahl ist durchaus real: Wenn der IE eine HTML-Seite läd und im HTML-Code steht, dass viele kleine Bildchen und Hintergründe, CSS-Dateien, usw. geladen werden sollen, dann wird für jede angeforderte Datei eine Verbindung geöffnet).
Oder soll ich alle Verbindungen manuell schließen? Dann schmiert das Programm sogar mit Debugger und onError Sektion kommentarlos ab

, wenn die Verbindung bereits weg war.