Einzelnen Beitrag anzeigen

k4ni

Registriert seit: 17. Jul 2007
Ort: Ulm
258 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: IdTCPServer: Packet an alle Clients?

  Alt 19. Mai 2008, 19:13
Zitat von shmia:
So wie dein Record aufgebaut ist, kannst du ihn nicht über das Netzwerk versenden.
Delphi-Quellcode:
type TPlayer = record
  palyerid: integer;
  tid: integer;
  name: string; // <===
Das Feld "name" ist nur ein Zeiger mit 4 Byte auf die wirklichen Daten.
Wenn der Zeiger über Netzwerk an einen anderen Rechner transportiert wird zeigt er auf ungültigen Speicher.
Hallo!

Ich will das eigentlich garnicht versenden. Das ist nur für den server da, für die identyfication.
Eigentlich braucht ich nur die TIdPeerThread variable wo ThreadID = players[i].tid.
Also in etwa so eine function:
Delphi-Quellcode:
function GetThread(ThreadID: cardinal): TIdPeerThread;
begin
...
...
end;
Denn dann könnte ich GetThread(12345).Connection.Send(.., ..) machen.
Und in einer schleife:

Delphi-Quellcode:
for i:=0 to iplayers-1 {anzahl aller spieler} do
if players[i].online then
    GetThread(players[i].tid).Connection.Send(...)
Edit: Hab eine lösung gefunden und werde es in kürze posten
  Mit Zitat antworten Zitat