![]() |
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 |
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 |
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 ^^ |
Re: Bild über Lan schicken
Hi,
das Verschicken von Bilder ist da etwas kompliziert. Ich hab ein sehr gutes Tutorial zu diesem Thema gelesen: ![]() mfg |
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 ?
|
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 |
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 |
Re: Bild über Lan schicken
Hi,
TStream ist eine abstrakte Klasse und sollte/darf nie instanziert werden. Benutz lieber TMemoryStream. Gruß Neutral General |
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 03:35 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