Socket reagiert nicht auf verbindungsunterbrechung
-
Hi,
ich benutze die Komponente TClientSocket
pSocket = new TClientSocket(NULL); pSocket->Active = false; pSocket->Address = "0.0.0.0"; //wird später vorm Connect gesetzt pSocket->Port = 0; //wird später vorm Connect gesetzt pSocket->ClientType = ctNonBlocking; pSocket->OnConnect = pSocketConnect; pSocket->OnDisconnect = pSocketDisconnect; pSocket->OnError = pSocketError; pSocket->OnRead = pSocketRead;der Verbindungsaufbau klappt wunderbar. Es wird eine Verbindung zu einem Rabbit4010 Microcontroller aufgebaut.
Wenn die Verbindung unterbrochen wird (z.B.: Trenne ich den Rabbit4010 von der Stromversorgung) dauert es 10-15 minuten eh die Funktion pSocketError aufgerufen wird. (Manchmal wird es auch überhaupt nicht erkannt)
Woran könnte dies liegen?
MfG
-
Hallo
das Verhalten ist normal, m.E. kommt eine Fehlermeldung erst wenn nach dem
senden kein TCP-ACK empfangen wurde. Ich hatte das gleiche Problem und zuerst
versucht an den TCPIP-Parametern von Windows wie Timeout, keep-alive etc rumzuspielen. Habe mir dann aber einfach beholfen, indem der Client jede
Sekunde etwas an den Server sendet, und der schickt das gleiche nochmal
zurück. Dann kommt ziemlich direkt eine Fehlermeldung.Gruss