Hallo Romber,
ich habe mir zu diesem Zweck ein kleines "Übertragungsprotokoll" erstellt, dass ich dann mittels SendBuf (anstatt SendText) verschicke.
Dieses Protokoll besteht im Prinzip aus einem Record in dem ich u.a. eine ID für die Clients, einen Anweisungsstring sowie den eigentlichen Meldungsstring untergebracht habe.
Beim erfolgreichen Anmelden am Server erhält der Client, der mit der ClientID -1 initialisiert wurde, vom Server seine ClientID mitgeteilt.
Bei jeder Meldung, die ich nun vom Server an die Clients sende, wird die ClientID des Clients mitgeschickt, für den die entsprechende Meldung gedacht ist.
Das eigentliche Versenden erfolgt immer noch an alle angemeldeten Clients:
Delphi-Quellcode:
for AnzahlClients := 0 to ServerSocket1.Socket.ActiveConnections - 1 do
begin
ServerSocket1.Socket.Connections[AnzahlClients].SendBuf(MessageRec,SizeOf(MessageRec));
end;
Im OnRead - Ereignis eines jeden Clients werte ich nun nach Empfang des Buffers zuerst die ClientID aus. Ist die gesendete Clíent-ID identisch, mit der ID des Clients, weiß er "Hallo, ich bin gemeint", ansonsten wird die Nachricht einfach ignoriert.
Steffen