Einzelnen Beitrag anzeigen

Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Indy, Events & IOS wer liegt falsch?

  Alt 15. Mai 2013, 14:01
@Mavarik:
Ich habe zwar den Indy-UDP-Server noch nicht so oft eingesetzt, aber ich bin mir ziemlich sicher das das OnUDPRead
immer wieder von Indy-Listener-Thread aufgerufen wird.
Genauso läuft es beim IdTcpServer und dem "OnExecute" Event.
In der Doku steht dazu auch, das der Code Thread-Safe sein muss und/bzw. Interaktion mit der Gui synchronisiert werden müssen.

Dein Code ist so nicht richtig strukturiert/aufgebaut,
was ist wenn das OnUDPRead-Event ein zweites/xyz mal eintritt bevor der TcpClient seine Arbeit verrichten kann ?
Bei Deinem Code würde der TcpClient nochmals versuchen zu connecten, obwohl er gerade verbunden ist und brav arbeitet.

und anstatt IdUdpServer1.disconnect aufzurufen, wäre es mit IdUdpServer1.Active := false;
Bei einem verbindungslosen Protokoll "besser zu lesen".

Greetz Data
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat