Einzelnen Beitrag anzeigen

schwa226

Registriert seit: 4. Apr 2008
400 Beiträge
 
#1

TIdUDPServer, mehrere Clients gleichzeitig verwalten

  Alt 1. Feb 2011, 13:06
Hallo,

ich habe einen TIdUDPServer und bei diesem kommen als Beispiel 2 Anfragen rein.
Über
Delphi-Quellcode:
procedure OnUDPRead(AThread: TIdUDPListenerThread; AData: TBytes;
  ABinding: TIdSocketHandle);
besser gesagt ABinding, bekomme ich die PeerIP und PeerPort des Clienten und kann sie auseinander halten.

Nun werden Daten aufbereitet und dann zum Client zurückgeschickt. Dies passiert aber nicht mehr in der OnUDPRead.
Jedoch kann es sein, dass die Aufbereitung von Client2 schneller ist als Client1. Ich muss also jeden Clienten jederzeit Antworten können.

Ich habe nun versucht über TIdUDPServer.Bindings.Count das Binding herauszufinden wo PeerIP und PeerPort zusammen passen. Dies geht aber nicht so richtig, denn bei 2 Clients findet er den 1. Client/Binding nicht mehr.

Wie sendet man UDP Daten zurück? Vielleicht doch über TIdUDPClient?
Wenn über TIdUDPClient, was für Port/IP soll hier eingestellt werden? Das vom ServerBinding oder die Wirkliche IP/Port des Servers?
Delphi 2010, Update 4 & 5
  Mit Zitat antworten Zitat