C: senden Sie die Datei an Buchse

Ich versuche zu senden Binärdatei mit sockel.

        FILE *file;
        char *file_data;
        file = fopen(filepath, "rb");

        //Allocate memory
        file_data=(char *)malloc(fileLen+1);

        //Read file contents into buffer
        fread(file_data, fileLen, 1, file);
        fclose(file);

        sent = send(client, file_data, strlen(header)+fileLen, 0);

Funktioniert es OK, aber einige Dateien zu groß und ich Lesen wollen, ein Teil zu Puffern, schicken Sie es, dann Lesen Sie im zweiten Teil, senden und so weiter.

Habe ich versucht, Teile zu bekommen mit fread und fgets, aber ich nicht = (, Wie es zu tun richtig?

UPD: das Problem war bei der Lektüre der eingehenden Anfrage vom client. Habe ich nicht gelesen. Wenn ich es mache, nichts schlimmes passiert

Sie brauchen, um uns zu zeigen, wie Sie haben versucht, sonst ist es schwer zu beantworten, warum Sie gescheitert. Es sollte nicht allzu schwer sein ...
Zeigen Sie uns, wie Sie waren, Taten Sie es mit fread und fgets, wir zeigen Ihnen, wie es funktioniert. Ich hätte gedacht, Sie könnten einfach anrufen fread, bis es wieder einen anderen Wert zu Ihr zählen, und in der gleichen Schleife schreiben in den socket.

InformationsquelleAutor spe | 2011-04-08

Schreibe einen Kommentar