Einzelnen Beitrag anzeigen

Benutzerbild von halinchen
halinchen

Registriert seit: 13. Jun 2006
508 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Methode zum wiederfinden eines Indy-Thread

  Alt 30. Mär 2007, 14:12
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 .
  Mit Zitat antworten Zitat