Einzelnen Beitrag anzeigen

Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#25

Re: Sehr langen String mit Clientsocket an Serversocket send

  Alt 29. Feb 2004, 13:27
Zitat von AnTiPrimaTe:
Beispiel
---------
Man verschickt zwei Kontakte über TCP/IP:

Max,Muster,Neuer Weg 12

und

Eva,Braun,Sternstrasse 14

beide Kontakte müssen z.B. in eine Datenbank abgespeichert werden.

Daten, die ankommen sehe wie folgt aus:

Max,Muster,Neuer Weg 12Eva,Braun,Sternstrasse 14

Wie machst Du das, wenn Du nicht weiß, wo ein Kontakt
anfängt und wo der endet?

Wenn Du aber:
<start>Max,Muster,Neuer Weg 12<end>
<start>Eva,Braun,Sternstrasse 14<end>
verschickst. kannst Du nach <start> und <end> parsen.

Nicht wahr?
Nein, so würde ich das nicht machen.
Ich hätte da für foldgenden Record in einer unit, die Client und Server verwenden:
Delphi-Quellcode:
  TKontakt = Record
             Vorname : String[20];
             Nachname : String[25];
             Strasse : String[40];
             end;
Diesen Record würde ich auf der Clientseite entsprechend füllen.
Wenn ich z.B. 5 Kontakte versenden möchte, würde ich die Kontakte in einem
TMemoryStream sammeln. Die Kontakte werden dann über TWinSocketStream.CopyFrom(MemoryStream,0)
zum Server befördert. Auf der Serverseite wird innerhalb die Repeat-Schleife der Inhalt
der Verbindung über TWinsocketStream eingelesen (Siehe oben).
Ob Du es glaubst oder nicht. Die einzelnen Kontakte stehen dann alle korrekt in FStream (siehe oben).
Jetzt kann ich mit FStream.Read(aKontakt,SizeOf(TKontakt)) die einzelnen Kontake aus dem Stream lesen und in die Datenbank schieben.

Evt. reden wir ja von unterschiedlichen Dingen
I come from outer space to save the human race
  Mit Zitat antworten Zitat