![]() |
stream in lan via indies
Delphi-Quellcode:
type
TDatensatz = record Nachname: String[30]; Vorname: String[30]; Lehrer: String[30]; Klasse: String[3]; Bemerkung: String[105]; end; var Form1: TForm1; Daten: Tdatensatz; clientseite. daten werden gesendet:
Delphi-Quellcode:
var
stream: TMemorystream;
Delphi-Quellcode:
der record of strings soll via memorystream ueber tcp geschickt werden.
with IdTCPClient1 do begin
stream := TMemorystream.Create; stream.WriteBuffer(daten, sizeof(TDatensatz)); Connect; //und Verbindung herstellen try OpenWriteBuffer; //stellt sicher, dass alle Daten versendet werden try writestream(stream, true, true, 0); {das 2. true ist wichtig!, da es bewirkt, dass die Größe des Streams mittels WriteInteger zuerst verschickt wird} CloseWriteBuffer; except CancelWriteBuffer; raise; end; finally Disconnect; stream.Free; end; end; serverseite... der memorystream soll empfangen werden und in gleiches record-of-strings-shema eingefuegt werden...
Delphi-Quellcode:
procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var stream: TmemoryStream; size: integer; begin stream := tmemorystream.Create; with AThread.Connection do try size := ReadInteger; //Größe des Streams empfangen ReadStream(stream, size); //und übergeben finally Disconnect; end; stream.Read(Daten, sizeof(Tdatensatz)); memo1.Lines.Add(daten.Nachname); memo1.Lines.Add(daten.Vorname); memo1.Lines.Add(daten.Lehrer); memo1.Lines.Add(daten.Klasse); memo1.Lines.Add(daten.Bemerkung); stream.Free; end; im memofeld entstehen jedoch nur leerzeilen :/ weiss einer rat? |
Re: stream in lan via indies
k, entschuldigt den thread, ichi habs grad rausbekommen.
stream.Seek(0,soFromBeginning); stream.Read(Daten, sizeof(Tdatensatz)); die zeile reingegeben, und es funkt :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:24 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