Einzelnen Beitrag anzeigen

Benutzerbild von XXcD
XXcD

Registriert seit: 19. Sep 2006
581 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Indy TCP Client Server - Verständnisproblem

  Alt 13. Sep 2009, 17:32
lol nen eigenen port dann müsstest du ja für jeden client nen eigen server aufsetzen
Versuch das mal so:

Delphi-Quellcode:
TClientInfo = class(TObject)
  Thread: TIdPeerThread;

  User: string; // z.B. auch den Benutzernamen mit ablegen
end;

...

uses Contnrs;
...
private
  FClients: TObjectList; // TObjectList gibt die Items automatisch frei.
end;

...

procedure TfrmMain.tcpServerConnect(AThread: TIdPeerThread);
var Client: TClientInfo;
begin
  ClientInfo := TClientInfo.Create; // erzeugen für diesen Client
  ClientInfo.Thread := AThread; // IdPeerThread zuweisen
  AThread.Data := ClientInfo; // auch in die anderen Richtung verknüpfen

  FClients.Add(ClientInfo); // und TClientInfo Instanz zur Client-Liste hinzufügen
end;

...

var Client: TClientInfo;
begin
  Client := TClientInfo(AThread.Data); // in OnConnect wurde AThread.Data auf die ClientInfo gesetzt
  AThread.Data := nil; // Verknüpfung lösen
  FClients.Remove(ClientInfo); // ClientInfo aus der Client-Liste löschen und freigeben
end;
Quelle: http://forum.delphi-treff.de/showthread.php?t=1571

Schau mal ob du damit was anfangen kannst.
Wenn nicht dann schreib ich dir da kurz was
  Mit Zitat antworten Zitat