![]() |
Sockets: Dateien
Also ich wollte das der Client einen Screenshot macht (funktioniert) und lädt diesen in ein Bild. Dieses Bild will ich jetzt dem Server schicken. Und dort ebenfalls in ein TImage laden. Bloß wie? Suche ... nunja sehr viel bloß *nix_raff*^^ nun ja wäre jemand so nett?
|
Re: Sockets: Dateien
Wenn du das Bild (als Bitmap) schon hast:
Delphi-Quellcode:
Und für das Empfangen auf Serverseite empfehle ich dir einfach mal die Suche...
//Client
str:=TMemoryStream.create; MeinBitmap.savetostream(str); Clientsocket1.sendstream(str); //str nicht freigeben, das übernimmt der Socket |
Re: Sockets: Dateien
Das wird so nicht klappen, da SendStream() afair von der aktuellen Position des Streams aus sendet. Von daher vorher die Eigenschaft Position des Streams str auf 0 setzen.
|
Re: Sockets: Dateien
kk das geht und empfangen?
|
Re: Sockets: Dateien
Mit ReceiveBuf() jedesmal im ClientRead alle vorhandenen Daten auslesen und in einen Stream schreiben bis du alles empfangen hast. Dann kannst du das Bild anzeigen...
|
Re: Sockets: Dateien
un woher weiß ich wann ich es anzeigen kann?
|
Re: Sockets: Dateien
Das hängt davon ob, wie du dein Protokoll definierst. Die Sockets übertragen einfach nur Daten und kümmern sich nicht um den Inhalt. Wenn du also unterschiedliche Daten/Informationen übertragen willst, brauchst du eine festgelegte Ordnung/Struktur - sprich: Protokoll. Also einfachstes Protokoll dazu: Übertrage die Grösse der folgenden Daten und dann die Daten. Wenn die empfangenen Daten den vorher gesendeten Umfang erreicht haben, dann hast du alles.
|
Re: Sockets: Dateien
:wiejetzt: verstehe das nicht. Ich arbeite mit einem Protokoll zwar einem sehr kleinen aber immerhin^^
|
Re: Sockets: Dateien
Am einfachsten ist Folgendes: Du schreibst dem Empfänger zu Beginn einfach die Größe des Streams:
Delphi-Quellcode:
Der Server weiß, dass zuerst eine Größenangabe ankommt, und speicherst diese in einer Variablen.
clientsocket1.socket.sendbuf(str.size,sizeof(int64));
Und außerdem liefere ich hier mal ein paar Schlüsselworte für die Suche: ![]() Hoffe, geholfen zu haben Apollonius |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:07 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