AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Dateiaustausch zwischen clientsocket und serversocket..^^
Thema durchsuchen
Ansicht
Themen-Optionen

Dateiaustausch zwischen clientsocket und serversocket..^^

Ein Thema von cRayZo · begonnen am 6. Okt 2007 · letzter Beitrag vom 12. Okt 2007
 
Muetze1
(Gast)

n/a Beiträge
 
#39

Re: Dateiaustausch zwischen clientsocket und serversocket..^

  Alt 11. Okt 2007, 21:39
Entschuldige wenn es etwas harsch war, aber ich hatte beim Beitrag zuvor schon darauf hingewiesen und vermutet, dass ReceiveText aufgerufen wird. Und dann postest du einen Code der dies bei jedem Aufruf von OnClientRead aufruft. Es ist fast schon ein Wunder, dass er überhaupt soweit kommt irgendwas in den Stream zu schreiben...

Zitat von cRayZo:
Zitat von Muetze1:
Ist schön das du davon nur 3 Zeichen abschneidest und den Rest wegwirfst. Wozu sendest du überhaupt soviel?
Ich sende nicht mehr, als ich brauche! die ersten drei ziffern werden nur zum überprüfen benutzt.
Und nochmal: ReceiveText liefert dir komplett alles, was der Socket bis zu dem Aufruf von ReceiveText empfangen hat. Wenn du auf der einen Seite "inc:" und dahinter einen Text "blubb" schickst, dann ist die Chance mehr als gross, dass der Client beim OnClientRead z.B. schon "inc:blubb" empfangen hat. Und damit erhälst du bei dem ReceiveText-Aufruf schon "inc:blubb". Dies gibst du Copy und bekommst nur "inc" - das ":blubb" schmeisst du weg, da du das nirgendwo speicherst. Genauso gut kann es sein, dass er bisher nur "in" empfangen hat. Dein ReceiveText entfernt nunmal alles was er jemals zurück gegeben hat aus dem Socket. D.h. beim nächsten Aufruf bekommste dann z.B. vielleicht "c:bl" und beim nächsten Mal "ubb".

Ich hoffe es war nun verständlich was du mit dem ReceiveText anrichtest.

Und nun stell dir mal vor, dass der Server gar keinen Text geschickt hatte sondern noch die Bilddaten übertragt. Dein ReceiveText Aufruf holt alle bisher empfangenen Daten aus dem Puffer des Sockets. Damit bekommst du einen String mit binären Bilddaten - die dann ReceiveBuf() nicht mehr bekommt, da du schon alles rausgeholt hast. Somit: du zerstückelst das Bild.

Deshalb: du musst immer wissen was wann über den Socket übertragen wird und wozu es gehört. Dazu ist es nötig die Übertragungen und Daten zu ordnen und dafür brauchst du ein Protokoll.
  Mit Zitat antworten Zitat
 


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 15:23 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