AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Grösse von RecieveText einer Socket!?
Thema durchsuchen
Ansicht
Themen-Optionen

Grösse von RecieveText einer Socket!?

Ein Thema von torud · begonnen am 16. Feb 2008 · letzter Beitrag vom 16. Feb 2008
Antwort Antwort
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#1

Grösse von RecieveText einer Socket!?

  Alt 16. Feb 2008, 10:03
Hallo Wissende,

ich erhalte über eine ClientSocket XML-Daten. Scheinbar ist der XML-String zu gross, denn ich erhalte beim ClientRead den Aufruf meiner MessageBox 2 mal, obwohl nur ein XML-String geschickt wurde.


Delphi-Quellcode:
procedure TForm1.ClientScoreRead(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  ShowMessage(ClientScore.Socket.ReceiveText);
Wird mir 2 mal angezeigt. Beim ersten mal mit dem ersten Abschnitt des XML-Strings und beim 2. mit dem Rest. Gibt es eine Möglichkeit dies zu verbessern? Da ich den XML-String parsen will/muss, muss ich wissen, ob der String vollständig ist, oder eine andere Funktion benutzen oder eine andere Komponente. Scheinbar ist die Größe der auf einmal übertragbaren Daten begrenzt!?
Danke
Tom
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#2

Re: Grösse von RecieveText einer Socket!?

  Alt 16. Feb 2008, 13:24
Dieses Verständnisproblem ist anscheinend bei vielen vorhanden. Der Socket überträgt rein die Bytes die ihm angetragen wurden. Dabei sorgt er nur dafür, dass die Bytes in der richtigen Reihenfolge wieder hinten rauskommt, nicht aber wie sie aufgeteilt werden. Wenn du eine schlechte Internetverbindung hast, dann kannst du im schlechtesten Falle mit jedem einzelnen Zeichen aufgerufen werden. Der Socket implementiert kein Protokoll, dass musst du machen, er überträgt rein die Daten. Er garantiert dir die Reihenfolge, die Teilung ist aber völlig belanglos.

Denk dir ein Protokoll aus, damit der Empfänger weiss, wieviele Daten er empfangen muss bis es komplett ist oder sammle so lange bis der XML Parser sagt: Jo, vollständig. Dann heb den Rest auf, der wird dann wohl für eine neue XML Struktur sein die folgt.
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#3

Re: Grösse von RecieveText einer Socket!?

  Alt 16. Feb 2008, 15:00
Danke für den Tipp. Das wusste ich soo noch nicht! Ich suche nun nach dem Start- und Anfangszeichen und bastel die Strings zusammen.
Danke
Tom
  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 04:50 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