Danke für deine Hilfe.
Die Beispiele von
Indy hab ich mir heruntergeladen, aber leider nicht zum laufen bekommen. (es fehlen ein paar Komponenten)
Ich denke nicht das darin die Lösung zu meinem Problem liegt. Der Server von den Beispielen schickt glaube ich an alle Clienten die Nachricht.
Ich erklär das nochmal:
15 Clienten sind mit dem Server verbunden. Client 1 will Client 2 eine Nachricht schicken --> er sendet die nachricht an den Server mit dem Empfänger in den Daten. Der Server überprüft nun den Namen und will Client 2 die Nachricht schicken. Er weiß aber nicht welchen Thread er nehmen muss, dass die Nachricht auch bei dem richtigen ankommt.
Ich hab in der
DP gelesen das in Server.Threads alle Leitungen drin stehen und es für jeden Clienten einen Thread gibt.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
LThreads: TList;
begin
LThreads := IdTCPServer1.Threads.LockList;
try
for i := 0 to LThreads.Count - 1 do
begin
with TIdPeerThread(LThreads[i]) do
begin
WriteLn('Hallo Client');
end;
end;
finally
IdTCPServer1.Threads.UnlockList;
end;
end;
Müsste ich dann auf den Thread x zugreifen. Allerdings weiß ich im OnExecute-Erreignis nicht, welchen Index dieser Thread hat.
(Das alles hab ich von
guste hier)
Ich will aber nun nur nicht an alle sondern an einen speziellen senden, und dafür brauch den Index (oder sonstirgentwas
) des Threads.
Ich denke ich müsste irgentwie den Index herausbekommen, oder eine besondere Eigenschaft finden, die bei jedem Thread anders ist (das wäre ja wieder der Index).
//Edit: Falls deine Lösung doch mein Problem löst, sag es mir bitte. Dann hab ich Tomaten auf den Augen
.