Einzelnen Beitrag anzeigen

Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.143 Beiträge
 
Delphi 10.3 Rio
 
#1

Indy, Events & IOS wer liegt falsch?

  Alt 15. Mai 2013, 13:36
Hallo Zusammen.

Mir stellt sich gerade die Frage ob Indy, IOS, FM3 den Fehler macht oder
ich...

gegeben sei:

Delphi-Quellcode:
procedure TMyForm.IdTCPClient1Connected(Sender: TObject);
begin
  repeat
    // Mache viel!
  until raushier;
  IdUDPServer1.disconnect;
end;

procedure TMyForm.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread;
  const AData: TIdBytes; ABinding: TIdSocketHandle);
begin
  // Mache so einiges
  IdTCPClient1.Connect;
  Memo1.Lines.Add('Raus hier');
end;
Was ich erwartet habe:
Der UDPServer startet den TCPClienten...
Im Memo steht "Raus hier"
und wenn der OnConnect des Clients kommt wird alles "verarbeitet" und der UDP Server
diskonnected.


Was passiert ist aber:
Der Client Onconnect kommt SOFORT
Der Server Disconnect am ende kann nicht aufgerufen werden, da der Connectcall innerhalb
des UDP Server Threads ist.
Nach einer netten Exception (abgefangen) steht dann im Memo "Raus hier"...

Hättet Ihr es gewusst? Mein Fehler?

Grüsse Mavarik
  Mit Zitat antworten Zitat