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