![]() |
Indy TCP Write Record
Hey Delphianer!
Ich hätt da mal ne Frage, undzwar versuche ich mein Record an ein Server zu schicken.
Delphi-Quellcode:
So funktioniert das:
type
TMyRecord = packed record OpCode: Byte; Data : array[0..255] of char; end;
Delphi-Quellcode:
Aber wenn ich die Zeile
procedure TMyClass.ClientOnConnected(Sender: TObject);
var LBytes: TIdBytes; LRecord: TMyRecord; Str: string; begin Str := 'test'; FillChar(LRecord, SizeOf(LRecord), #0); LRecord.OpCode := 5; StrPLCopy(LRecord.Data, (Str), Length(LRecord.Data)); SetLength(LBytes, SizeOf(LRecord)); Move(Lrecord, LBytes[0], SizeOf(LRecord)); Client.IOHandler.Write(LBytes); end;
Delphi-Quellcode:
mit
Str := 'test';
Delphi-Quellcode:
ersetze, dann bekomme ich nen Error:
Str := (Gebe_String_Zurück);
Code:
Ich frage mich warum das so ist ...
---------------------------
Debugger Exception Notification --------------------------- Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 00465C39 in module 'Project1.exe'. Read of address 00000090'. Process stopped. Use Step or Run to continue. --------------------------- OK Help --------------------------- So empfang ich mein Record
Delphi-Quellcode:
Ich hoffe ihr könnt mir da helfen, ich hab echt keine Ahnung warum das nicht geht.
procedure TForm1.ServerExecute(AContext: TIdContext);
var LBuffer : TIdBytes; LRecordReceived : TMyRecord; begin //SetLength(LBuffer, SizeOf(LRecordReceived)); with AContext.Connection do try IOHandler.ReadBytes(LBuffer, SizeOf(LRecordReceived), false); Move(LBuffer[0], LRecordReceived, SizeOf(LRecordReceived)); showMessage(IntToStr(LRecordReceived.OpCode)); Log.Lines.Add(LRecordReceived.Data); finally Disconnect; end; end; Mfg DArc Edit: Achja, während dem Debuggen ist der String korrekt gefüllt. Edit2: Habe mein Delphi wieder angeschmissen und komischerweise gehts jetzt ... echt merkwürdig, vorallem weil ich zuvor ne Stunde versucht hab das zum Laufen zu bringen :D Das Schlimmste ist, dass ich nicht mal weiß woran es lag, weil ich ja nichts geändert habe -.-! Naja es geht jetzt! Vielleicht hat ja jemand interesse an dem Code, dann wär dieser Post doch nicht ganz umsonst xD |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz