Ich glaube aber , das in dem Code aus dem IndyChat schon die Lösung steckt.
Es gibt da nämlich auch die Möglichkeit, vom Server eine Nachricht an einen ausgewählten Client zu schicken:
Delphi-Quellcode:
procedure TfrmMain.btnPMClick(Sender: TObject);
var
Msg : String;
Client : TSimpleClient;
begin
Msg := InputBox('Private Message', 'What is the message', '');
Msg := Trim(Msg);
Msg := edSyopName.Text + '> ' + Msg;
if (Msg <> '') and
(lbClients.ItemIndex <> -1) then
begin
Client := Clients.Items[lbClients.ItemIndex];
TIdPeerThread(Client.Thread).Connection.WriteLn(Msg);
end;
end;
Entscheidend ist hier die Zuweisung an die Klasse TSimpleClient (über einen String aus der Stringlist lbClients) und das Identifizieren des Threads über Client.Thread.
Das müßte doch ein Ansatz für Dein Problem sein, Du bräuchtest eigentlich nur noch die richtige Zuweisung.