fstreams und .exe
-
Aloha zusammen,
kurz und knap: Ich suche eine Möglichkeit .exen über Sockets zu verschicken.
Ich habe mich schon ein bisschen umgehört und mir wurde letztendlich gepredigt, dass Dateien, ob .exe oder .bmp, ja schließlich auch Daten seien, also kein Problem diese zu senden. Also in ein char einlesen, per send schicken usw.
Nun gut, auch wenn es nach wie vor meiner Logik eines fstreams widerspricht habe ich mich hingesetzt und versucht ein kleines Kopierprogramm zu schreiben. Sprich, aus "text.exe" eine "out.exe" kopieren. Das ganze sieht wie folgt aus:
#include <iostream> #include <fstream> using namespace std; int main() { char c; // 4 byte buffer ifstream in("test.exe"); if(!in.good()) { cout << "Fehler beim oeffnen des instreams..."; return 1; } ofstream out("out.exe"); if(!out.good()) { cout << "Fehler beim oeffnen des outstreams..."; return 1; } //read&write: while(in.get(c)) out.put(c); // close: out.close(); in.close(); cout << "done"; cin.get(); return 0; }Raus kommt eine .exe. Allerdings eine entweder nciht ausführbare, oder eine die schlicht ein Consolenfenster öffnet...
MfG,
ICE
-
binär öffnen
-
char c; // 4 byte bufferLOL
-
Hehe, manchmal ist die Lösung einfacher als man denkt. Und noch dazu logisch. Vielen dank

-
Zeichenweise lesen und schreiben ist aber lahm.
-
Was wäre die bessere Lösung?
-
Mehrere Zeichen lesen und mehrere Zeichen schreiben?

-
Das schon, aber read() und write() gab bei mir wieder eine korrupte exe zurück...
was gibts noch?
-
read und write sind schon richtig. du musst es nur richtig machen.