I am using fread function to read file, which I am sending via TCP. I found out, that fread doesn't read the whole file, if the file is binary. I tried everything what i found on the internet, but nothing helped. My code is:
#define BUFSIZE 1024
char buf[BUFSIZE];
FILE *file = fopen(soubor,"rb"); //I do a check which i won't write here
size_t bytes_loaded = 0;    
while (!feof(file))
        {
            bytes_loaded = fread(buf,1,BUFSIZE,file);
            if(bytes_loaded != BUFSIZE)
            {
                if(!feof(file))
                {
                    for(int i = 0; i < 100;i++)
                    {
                        fseek(file,-strlen(buf),SEEK_CUR);
                        bytes_loaded = fread(buf,1,BUFSIZE,file);
                        if(bytes_loaded == BUFSIZE)
                        {
                            break;
                        }
                        else if(i == 99)
                        {
                            fprintf(stderr,"C could't read the file\n");
                            fclose(file);
                            close(client_socket);
                            return 1;
                        }
                    }
                }
            }
            bytestx = send(client_socket, buf, BUFSIZE, 0); 
            if (bytestx < 0)
                perror("ERROR in sendto");
            bzero(buf, BUFSIZE);
            bytes_loaded = 0;
        }
Am I doing something wrong? For example that fread check...
 
     
    