AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi sockets strings schicken/lan.
Thema durchsuchen
Ansicht
Themen-Optionen

sockets strings schicken/lan.

Ein Thema von Beckman · begonnen am 28. Nov 2004 · letzter Beitrag vom 28. Nov 2004
Antwort Antwort
Beckman

Registriert seit: 12. Jul 2004
205 Beiträge
 
#1

sockets strings schicken/lan.

  Alt 28. Nov 2004, 03:41
Delphi-Quellcode:
type
  TDatensatz = record
    Nachname: String;
    Vorname: String;
    Klasse: String;
    Lehrer: String;
    Bemerkung: String;
  end;
global var:

Delphi-Quellcode:
var
  Form1: TForm1;
  Daten: Tdatensatz;
ich will entweder sockets oder indy tcp server/client verwenden.


wie kann ich vom clienten zum server diesen Tdatensatz transferieren, am leichtesten?

bzw, oder wie macht man das mit streams oder einfach nur mit sendln, sodass ich das dann wieder abfange sortiert auf der anderen seite.

kann mir da wer hinweise geben?
  Mit Zitat antworten Zitat
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#2

Re: sockets strings schicken/lan.

  Alt 28. Nov 2004, 13:03
Mit den Sockets schaust du dir am besten mal SendBuf und ReceiveBuf an
Julian J. Pracht
  Mit Zitat antworten Zitat
Beckman

Registriert seit: 12. Jul 2004
205 Beiträge
 
#3

Re: sockets strings schicken/lan.

  Alt 28. Nov 2004, 13:18
jow. thanks.

ich hab inzwischen bissi rum experimentiert und rausgefunden, dass die data.dat am schoensten im hex editor ausschaut, wenn ichs so mach:

Delphi-Quellcode:
type
  TDatensatz = record
    Nachname: String[30];
    Vorname: String[30];
    Lehrer: String[30];
    Klasse: String[3];
    Bemerkung: String[105];
  end;

Delphi-Quellcode:
fstream := tfilestream.Create(extractfilepath(paramstr(0)) + 'data.dat', fmcreate);
fstream.Write(daten, sizeof(daten));
fstream.Free;

so schaut das recht formell aus im hex editor, das heisst, es muesste funken, wenn ichs in genau dieser form an daten (var daten: Tdatensatz) uebergeben kann.

hab mal mit dem probiert, weil das ja aehnlich dann funken muesste wie ueber LAN mit streams.


kann mir wer sagen, wie man das an meine daten-var wieder uebergeben kann?

das mit send und receivebuff schau ich mir dann an, thanks.
  Mit Zitat antworten Zitat
Beckman

Registriert seit: 12. Jul 2004
205 Beiträge
 
#4

Re: sockets strings schicken/lan.

  Alt 28. Nov 2004, 13:59
muhahhaaa. habs rausgefunden

fstream.ReadBuffer(Daten, SizeOf(TDatensatz));

edit:
ich verwend .read(). funkt auch:
brauch naemlich keine buffer, deren sinn ich net versteh
weil ka, was der unterschied ist


so gehts

weil ich ja schoen brav immer string[x] gemacht hab


jetzt versuch ich das ganze mal wie oben vorgeschlagen ueber LAN zu senden mit send/receivebuf mit den sockets.



update:


ich will das als tmemory stream schicken und empfangen.





Delphi-Quellcode:
procedure TForm1.TcpServer1Accept(Sender: TObject;
  ClientSocket: TCustomIpClient);
var
  stream: TmemoryStream;
begin
stream := tmemorystream.Create;

ClientSocket.ReceiveBuf(stream.memory^, sizeof(TDatensatz));
//clientsocket.ReceiveBuf(stream, sizeof(TDatensatz));

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;

da werden nur leere zeilen erstellt.

ich will vorher das erhaltene in den memorystream laden und den dann dem daten-record uebergeben.

der fehler liegt irgendwo beim receivebuf imho...

ich weiss also ganz genau, wie lang der empfangene stream sein muesste, der in den memorystream soll, also so gross wie halt Tdatensatz aber das funkt net... *wein*


will wer helfen?
  Mit Zitat antworten Zitat
Beckman

Registriert seit: 12. Jul 2004
205 Beiträge
 
#5

Re: sockets strings schicken/lan.

  Alt 28. Nov 2004, 18:06
ich erstell mal ne neue frage.
jetzt hab ichs mit indies versucht, obwohl ich genauso erfolglos bin...

hier link: http://www.delphipraxis.net/internal...=274997#274997
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz