Einfach an alle Clients schicken, außerdem eben dem, der den Befehl gesendet hat. Ich hoffe folgendes stimmt so. Kompillieren tut es, aber ob es funktioniert weiß ich nicht. Wenn mich mein
TCP-Verständnis nicht täuscht, sollte es aber. (
TCP-Verständnis: Ein Client ist eindeutig über seinen Port und seine
IP zu identifizieren!?)
Delphi-Quellcode:
procedure TForm1.OnClientWrite(Sender: TObject; Socket: TCustomWinSocket);
var i: Integer;
begin
for i := 0 to Server.Socket.ActiveConnections-1 do
begin
if (Socket.RemotePort <> Server.Socket.Connections[i].RemotePort) or
(Socket.RemoteHost <> Server.Socket.Connections[i].RemoteHost) then
Server.Socket.Connections[i].SendText('Bla.');
// else
// Dieser Client hat gesendet
end;
end;
Edit:// and durch or ersetzt. Kleiner logischer Fehler, schließlich müssen ja nicht beide Werte unterschiedlich sein, sondern mindestens einer. Hab' das jetzt auch getestet, es funktioniert.
Ob das jetzt eine schöne Lösung ist - darüber kann jemand anderes philosophieren.
Mit freundlichen Grüßen,
Valle