C - Socket : Programmation Client/Serveur Application pour envoyer un fichier

Je veux programmer une application pour envoyer un fichier avec des sockets:

Ici mon Serveur:

   void str_server(int sock)
    {
            char buf[1025];
            const char* filename="test.text";
            FILE *file = fopen(filename, "rb");
            err_abort("Test");
            while (!feof(file))
            {
                int rval = fread(buf, 1, sizeof(buf), file);
                send(sock, buf, rval, 0);
            }
    }

et voici mon client:

void RecvFile(int sock, const char* filename)
{
    int rval;
    char buf[0x1000];
    FILE *file = fopen(filename, "wb");
    while ((rval = recv(sock, buf, sizeof(buf), 0)) > 0)
    {
        fwrite(buf, 1, rval, file);
    }
    close(sock);
}

Mon problème est que mon client créez un fichier....mais ne pas écrire le contenu dans le fichier!

A part cela, vous n'avez pas besoin de lire chaque octet et l'envoyer en bas de la douille. Vous avez pu lire l'ensemble de la chaîne de caractères dans un tampon et de l'envoyer(..) d'un seul coup. Au sujet de votre problème, avez-vous fermer le fichier avant de le vérifier?

OriginalL'auteur JavaNullPointer | 2012-03-26