Socket offen/geschlossen herausfinden

04/08/2010 - 20:21 von Daniel Weber | Report spam
Hallo zusammen,

ich suche nach einer Möglichkeit bei einem gegebenen Socket per Winsock
2 API herauszufinden, ob das offen oder geschlossen ist, ohne dass ich
tatsàchlich recv oder send aufrufe. Gibt es da einen Weg?

Ciao,
Daniel
 

Lesen sie die antworten

#1 Ulrich Eckhardt
05/08/2010 - 08:23 | Warnen spam
Daniel Weber wrote:
ich suche nach einer Möglichkeit bei einem gegebenen Socket per Winsock
2 API herauszufinden, ob das offen oder geschlossen ist, ohne dass ich
tatsàchlich recv oder send aufrufe. Gibt es da einen Weg?



Der Socket ist entweder offen oder falsch, aber eigentlich nie geschlossen.
Nachdem Du closesocket() aufgerufen hast darfst Du das Socket-Handle nicht
mehr verwenden, genauso wie Pointer nach free()/delete. Es kann sogar sein
dass ein spaeterer Aufruf von socket() ein Handle mit dem gleichen Wert
liefert.

Wenn Du testen willst ob die andere Seite eines verbindungsbasierten Sockets
(z.B. also TCP, aber nicht UDP) geschlossen wurde, dazu gibt es z.B.
WSAEnumNetworkEvents() oder select().

Uli

Sator Laser GmbH
Geschàftsführer: Thorsten Föcking, Amtsgericht Hamburg HR B62 932

Ähnliche fragen