Bilder etc. via Socket versenden
Guten Morgen,
ich bin ein blutiger C++-Anfänger und sitze nun schon seit einiger Zeit an einem Programm, das Dateien von einem Rechner auf einen anderen übertragen soll. Die Verbindung per Socket steht schon und funktioniert schon alles.
Aber ich weiss eben nicht, wie ich ganze Bilder, Videos, oder überhaupt Dateien, deren Format vielleicht unbekannt ist verschicken kann. Bei Textdateien, hätte ich das ganze so realisiert, damit ich die Dateien Zeile für Zeile in einen Puffer einlese, verschicke und dann am anderen Ende wieder Zeile für Zeile in eine Datei schreibe. Aber bei .jpg, .avi & co. funktioniert das ja nicht.
Kann mir jemand helfen? Vielen Dank im Voraus
Euer Bernd
ich bin ein blutiger C++-Anfänger und sitze nun schon seit einiger Zeit an einem Programm, das Dateien von einem Rechner auf einen anderen übertragen soll. Die Verbindung per Socket steht schon und funktioniert schon alles.
Aber ich weiss eben nicht, wie ich ganze Bilder, Videos, oder überhaupt Dateien, deren Format vielleicht unbekannt ist verschicken kann. Bei Textdateien, hätte ich das ganze so realisiert, damit ich die Dateien Zeile für Zeile in einen Puffer einlese, verschicke und dann am anderen Ende wieder Zeile für Zeile in eine Datei schreibe. Aber bei .jpg, .avi & co. funktioniert das ja nicht.
Kann mir jemand helfen? Vielen Dank im Voraus
Euer Bernd
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 89905
Url: https://administrator.de/contentid/89905
Ausgedruckt am: 26.11.2024 um 11:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo
Du musst nur die SendSteam Funktion verwenden.
Davor musst Du die Datei in ein Stream laden.
Client:
Server:
Du musst nur die SendSteam Funktion verwenden.
Davor musst Du die Datei in ein Stream laden.
Client:
TMemoryStream *FileStream=new TMemoryStream();
FileStream->LoadFromFile(FilePath);
ClientSocket->SendStream(FileStream);
Server:
void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,
TCustomWinSocket *Socket)
{
int BufferSize = Socket->ReceiveLength();
Pointer Buffer = GetMemory(BufferSize);
Socket->ReceiveBuf(Buffer,BufferSize);
TMemoryStream *FileStream=new TMemoryStream();
FileStream->WriteBuffer(Buffer,BufferSize);
}