C: отправить файл в сокет

Я пытаюсь отправить двоичный файл с помощью сокета.

        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);

Он работает нормально, но некоторые файлы слишком большие, и я хочу прочитать часть в буфер, отправить ее, затем прочитать вторую часть, отправить это и т. д.

Я пытался получить части с помощью fread и fgets, но мне не удалось = (Как это сделать правильно?

UPD: проблема была в чтении входящего запроса от клиента. Я не читал его. Если я делаю это, ничего плохого не происходит

5
задан spe 13 March 2012 в 14:51
поделиться