problem datei senden mit winsock
-
so ich habe mir ne kleine funktion zusammengebastelt um dateien zu senden
mein problem mit textbasierte dateien sendet er wohl einwandfrei wollte nun zum testen aber ne 30Mb rar datei senden
aber nix da ich bekomme als ausgabe nur ein paar sonderzeichen und dann ist schluss
hier mal die gesamte funktion
hab leider keine ahnung was ich verhunzt habe(hoffe inständig das es an dieser funktion liegt)
void Socket::SendFiles(const char *filename) { FILE *resource = NULL; char buf[1024]; printf ( "file_found Server will send: %s", filename ); resource = fopen(filename, "r"); if (resource == NULL) { printf ( "not_found: %s", filename ); } else { fgets(buf, sizeof(buf), resource); while (!feof(resource)) { send(s_, buf, strlen(buf), 0); fgets(buf, sizeof(buf), resource); } } fclose(resource); }
-
fopen(filename, "rb");
-
ausserdem fread statt fgets benutzen...
-
hat jemand nen gutes beispiel zu freads finde nämlich nur beispiele wo ich nen char* die größe der datei zuweise und dann alles rein kopieren
bruach das aber in der art wie ich die funktion weiter oben auch habe das er die datei in "buffer" große stückchen holt bis "eof"damit ich sie dann senden kann
-
ab ins C Forum

-
das gehört nicht ins ansi c forum?
fread( buffer, sizeof(buffer), 1, fp)
-
so nach dem ich mich von meinem Herzinfarkt erholt habe den ich bekamm weil ich ja auf die idee kam den inhalt der zu sendenden datei per printf ausgeben zu lassen und bei ner 30mb datei kommt ja denn doch das eine oder andere mal /a vor (PIEP PIEP ....)und das um 23 uhr .
hier mal die fertig? umgebaute funktion
EDIT: habe das nochmal editiert, hier mal die aktuelle version
void Socket::SendFiles(const char *filename) { FILE *resource = NULL; char buf[1024]; int sizeRead; printf ( "file_found Server will send: %s", filename ); resource = fopen(filename, "rb"); if (resource == NULL) { printf ( "not_found: %s", filename ); } else { while(!feof(resource)) { sizeRead=fread( buf,1, sizeof(buf)-1, resource); buf [sizeRead+1] = '\0'; send(s_, buf, sizeRead, 0); } } fclose(resource); }
-
Das neue Herzinfarkt mittel STRG+C

-
Reset-Knopf