Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Bild über Lan schicken (https://www.delphipraxis.net/118334-bild-ueber-lan-schicken.html)

Counter909 5. Aug 2008 16:30


Bild über Lan schicken
 
HI


ich hab einen Client und einen Server mit TServsocket bzw. TClientsocket fertiggestellt und jetzt möchte ich vom Server aus zum Beispiel ein Bild(Screenshot), das neu gemacht wurde, dem Client schicken. Muss ich das dann über ein Stream schicken oder wie gehe ich da am besten vor ?


MfG
Counter

rollstuhlfahrer 5. Aug 2008 17:24

Re: Bild über Lan schicken
 
als erstes sendest du eine Längenangabe zum Client und danach das Bild verschicken. Da ClientSocket und Serversocket eine definierte Paketgröße von 4096Byte haben, wäre es vllt. sinnvoll, wenn du auf Indy unsteigst. Dort gibts ReadStream, welches für den größeren Empfang sorgt. Das Bild kannst du auch per JPEG kompressieren und dann als Stream verpacken. Wenn du jetzt nur das Objekt verschickst, kommt eine Zahlenkompination an, mit der der Zielrechner nichts anfangen kann. (also doch per Stream)

Bernhard

Counter909 5. Aug 2008 18:21

Re: Bild über Lan schicken
 
gibt es dazu i-wo eine gute Erklärung ?
hab zu den themen nur die eifnach Methoden gefunden mit sendtext und recievetext, aber das hab ich ja schon alles kapiert ^^

chest3rs 6. Aug 2008 10:21

Re: Bild über Lan schicken
 
Hi,

das Verschicken von Bilder ist da etwas kompliziert. Ich hab ein sehr gutes Tutorial zu diesem Thema gelesen:

Binär-Protokoll-Tutorial von Narses

mfg

Counter909 6. Aug 2008 16:21

Re: Bild über Lan schicken
 
also das ist i.wie nicht ganz einfach....aber ist das richtig, dass man Bilder über winsock nur bis 8kb verschicken kann ?

rollstuhlfahrer 7. Aug 2008 06:56

Re: Bild über Lan schicken
 
HI,

ich denk mal schon, dass das geht. Bei meinen Programmen werden bis zu 430kb (JPEG) "auf einmal" übertragen. Wie sonst könntest du dann mit deinem Browser größere Webseiten laden oder dich mit 1GB großen Dateien rumschlagen, wenn alles auf 8kb begrenzt sei?

Bernhard

Counter909 7. Aug 2008 15:47

Re: Bild über Lan schicken
 
aso dann ist ja gut :-) im tutorial wird i-wo einmal erwähnt, dass es nur 8kb geht bei winsock, deshalb nehmen viele Indy, bei dem man dann mehr kann :-)


kannst du vllt ein mini beispiel geben, wie gesendet wird und empfangen ?


also server denk ich mal so:

Delphi-Quellcode:
imgdata:=Tstream.create;
bitmap.savetostream(imgdata);
serversocket1.socket.connection[o].sendstream(imgdata)

nur das empfangen macht mir ziemliche schwierigkeiten...hatte das einmal so, dass jedes mal dann kam, dass die bimap ungültig ist, aber ansonst kein Fehler kam


mfg

Neutral General 7. Aug 2008 15:50

Re: Bild über Lan schicken
 
Hi,

TStream ist eine abstrakte Klasse und sollte/darf nie instanziert werden. Benutz lieber TMemoryStream.

Gruß
Neutral General

Counter909 7. Aug 2008 15:54

Re: Bild über Lan schicken
 
stimmt...darauf bin ich auch i-wo gestoßen...danke

also statt Tstream dann TMemoryStream :-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:09 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