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