AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Image über Socket verschicken
Thema durchsuchen
Ansicht
Themen-Optionen

Image über Socket verschicken

Ein Thema von Masteric · begonnen am 28. Jan 2008 · letzter Beitrag vom 29. Jan 2008
 
Muetze1
(Gast)

n/a Beiträge
 
#9

Re: Image über Socket verschicken

  Alt 29. Jan 2008, 11:09
Die Sockets übertragen einfach nur Byte für Byte. Dabei ist nur die Reihenfolge der Bytes wichtig und diese wird auch eingehalten. Wenn du auf der einen Seite zweimal was schickst, kann dies in einem Stück beim Empfänger ankommen aber genauso gut in 20 kleineren Teilen. Von daher musst du auf Empfangsseite mehrfach was empfangen und dann wieder zusammenfügen, bis du alle Daten zusammen hast. Und von daher müsste der Empfänger erstmal wissen wie groß die Daten sind, sprich: wieviel er sammeln muss, bis er die Daten komplett empfangen hat. Mit anderen Worten: Du musst dir ein Protokoll ausdenken was sich genau darum kümmert und diese Informationen zu den Daten mit übermittelt.

Delphi-Quellcode:
var s: TStream;
begin
Socket.ReceiveBuf(s, sizeof(s));
TStream ist eine Variable welche intern nur einen Zeiger auf das Objekt hat. Dies lässt sich auch dadurch feststellen, dass SizeOf() dir immer 4 Bytes liefert. Dieser Zeiger zeigt auch erst auf ein gültiges Objekt, wenn du es mit dem Konstruktoraufruf angelegt hast. Somit kann dein Aufruf nicht funktionieren - bisher überschreibst du einfach deine Variablen bzw. Code mit Datenmüll.

Zur Funktion ReceiveBuf() findet man im Forum genug Beispiele, z.B. hier. Dieses Beispiel hat nur noch das Problem, dass er nicht beachtet, dass das ClientSocket1Read() mehrfach aufgerufen werden kann, bis alle Daten empfangen wurden. Somit würde das Bild ungültig sein beim Laden - aber das kannst du ja schnell abändern.
  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 02:03 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 by Thomas Breitkreuz