Is socket connection still alive?
-
Hi alle,
ich habe nochmal ein Problem bei meiner Socketverbindung.
Ich würde gerne prüfen ob meine Verbindung noch besteht. Ich hab in der MSDN gelesen ich kann über die send() func. auf das connection timeout prüfen allerdings dauern 60 sec. doch schon etwas zu lange =(.Gibt es evtl. solch eine Methode oder einen schnelleren weg herauszufinden ob die socket verbindung noch besteht?
z.b.:
if (SocketIsAlive(MySocketCon)) // send something else // do whatever..mfg,
Mike
-
Du könntest die Methode OnClose() von CAsyncSocket verwenden.
Aber eine Art gegenueber_noch_da(socket) kanns nicht geben - du musst dem anderen zumindest die Zeit geben "Ja, ich bin noch da" zu sagen

MfG SideWinder
-
hmm wie wird das in der Regel denn gemacht um eine bestehende verbindung zu prüfen? sich gegenseitig ping wie im mirc das ping pong?
Ich Benutze leider nicht Die CAsyncSocket class.
mfg,
Mike
-
T1c4L schrieb:
Ich Benutze leider nicht Die CAsyncSocket class.
Welche Socket-Klasse verwendest du denn?
T1c4L schrieb:
hmm wie wird das in der Regel denn gemacht um eine bestehende verbindung zu prüfen? sich gegenseitig ping wie im mirc das ping pong?
Die meisten Socket-Libraries haben afaik einen Handler um bei einem Timeout den Socket zu schließen. Deswegen können sie auch eine isClosed()-Methode anbieten die letzten Endes nur den internen Status zurückgibt.
MfG SideWinder
-
ich hab eine eigene socketklasse fuer syncrone sockets welche auf winsock2.h/wsock32.lib zugreift und die normalen func. wie bind() send() accept() etc. kapselt. Halt nicht die CSocket, CAsyncSocket class.
es muss doch nen weg geben sonst muss man ja doch auf das ping pong zurück greifen um asap die connection zu prüfen.
das mit onclose und den timeout hab ich schon gesehen nur sind die 60 sec zu lange fuer mein client server ding hier. damn

danke trotzdem fuer deine help!
mfg,
Mike