Я пытаюсь построить клиент FTP-сервера.Я написал эту функцию для отправки файлов, но она работает не для всех файлов.Хотя он работает для некоторых файлов, таких как jpg, когда дело доходит до ppt или других файлов, это создает проблему.Я пытаюсь отправить 100 байт каждый раз файла, над которым я работаю в Ubuntu 18.04
. Ранее я пытался использовать библиотечную функцию для отправки файла через сокет.но это также не помогло.
void sendfiledata(int sockfd, char * filename) {
FILE * file;
unsigned long fileLen;
file = fopen(filename, "rb");
//Get file length
fseek(file, 0, SEEK_END);
fileLen = ftell(file);
fseek(file, 0, SEEK_SET);
long int loop = fileLen / 100;
long int remainfile = fileLen % 100;
buffer = (char * ) malloc(fileLen);
fread(buffer, fileLen, sizeof(char), file);
fclose(file);
send(sockfd, & fileLen, sizeof(int), 0);
int i = 0;
char chunk[100];
for (int j = 0; j < loop; j++) {
int k = 0;
while (i < fileLen && k < 100) {
chunk[k] = buffer[i];
i++;
k++;
}
send(sockfd, chunk, 100, 0);
}
if (remainfile > 0) {
int k = 0;
while (i < fileLen && k < remainfile) {
chunk[k] = buffer[i];
i++;
k++;
}
send(sockfd, chunk, remainfile, 0);
}
memset(filename, '\0', sizeof(filename));
}
Я хочу, чтобы файлы полностью отправлялись с одного компьютера на другой.но здесь некоторые файлы работают, но не все.