begin process at 2008 08 29 22:07:52
1 233 910 membres
431 nouveaux aujourd'hui
14 294 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

ENVOI/RÉCEPTION DE FICHIERS (CLIENT/SERVEUR) [DEV-C++]


Information sur la source



Description

Suite à une demande sur le forum, j'ai fait une source qui montre une connexion Client/Serveur afin d'envoyer un fichier qui peut être du texte ou un fichier binaire (comme les executables...).
Le client envoie le fichier après s'être connecté au serveur qui lui le reçoit.
Pour tester veuillez renommer les fichiers .exe.executable en .exe

J'attends vos appréciations, remarques constructives et notes avec impatience.

Source

  • Téléchargez le zip, ça ne coûte rien et vous avez en plus les fichiers des 2 projets Dev-C++ !
Téléchargez le zip, ça ne coûte rien et vous avez en plus les fichiers des 2 projets Dev-C++ !
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   Client
    • Client.devTélécharger ce fichier [Réservé aux membres club]1 014 octets
    • Client.exe.executableTélécharger ce fichier [Réservé aux membres club]483 576 octets
    • main.cppTélécharger ce fichier [Réservé aux membres club]Voir ce fichier5 246 octets
    • Makefile.winTélécharger ce fichier [Réservé aux membres club]906 octets
  •   Serveur
    • main.cppTélécharger ce fichier [Réservé aux membres club]Voir ce fichier5 485 octets
    • Makefile.winTélécharger ce fichier [Réservé aux membres club]905 octets
    • Serveur.devTélécharger ce fichier [Réservé aux membres club]1 009 octets
    • Serveur.exe.executableTélécharger ce fichier [Réservé aux membres club]482 645 octets

Télécharger le zip

  • signaler à un administrateur
    Commentaire de piranhaworld le 02/04/2007 01:53:23

    Ton script est très interressant.. :)

    petites suggestions:
    - lorsque tape "C:/mon dossier/fichier.txt" faudrait que ça marche ce qui permettrai de faire des cliquer déplacer d'un fichier vers la fenêtre client.exe :)
    - l'idéal serait de ne pas couper le serveur ou le client en fin de transfert
    - tester si le port 47836 du client est ouvert
    - et donc pour tester si le client existe (dans le cas ou le port serais fermé) utiliser le ping par exemple (uniquement si le port 47836 semble être fermer, j'entends bien.. car mon routeur par exemple répond pas au ping)

    Petites suggestions bien chiantes :)
    - faire une belle interface graphique,
    - envoie recurssif (envoi de dossier)
    - demander confirmation pour réception de fichier

    en espérant que cela puisse te guider,
    sinon pour les autres, penser à ouvrir votre port 47836 pour recevoir des fichiers (c'était pas précisé :))

  • signaler à un administrateur
    Commentaire de victorcoasne le 03/04/2007 19:42:23

    Si tu veux ceci est une base qui vous permet de construire votre projet.
    Le but n'est pas de faire un truc prêt à vendre mais bel et bien un tutorial.
    Même si je serais capable de faire tout ce que tu a cité j'en n'aurais pas le temps car en 1ère SSI il y a beaucoup de devoirs.

    Par contre qu'est-ce que tu entends par "tester si le port 47836 du client est ouvert " car je rapelle que c'est le client qui teste si le serveur est ouvert et non l'inverse.
    Tout ce qu'il peut faire c'est vérifier si le serveur répond toujours (quand il est connecté) bien que s'il se déconnecte lors du transfert les sockets renvoient une erreur.

    PS : Merci d'avoir apporté une critique constructive car c'est rare de nos jours...

  • signaler à un administrateur
    Commentaire de legogo le 12/04/2007 12:13:06

    Je me suis dit que ce projet pouvait être vachement intéressant pour démarrer dans le client/serveur. Mais ça manque curellement de commentaires :(. A moins que tu ne donne quelques liens vers des tuto/doc (que l'on peut aller chercher nous même, certes) c'est très (<- le 'très' est relatif) difficile à comprendre.

  • signaler à un administrateur
    Commentaire de victorcoasne le 12/04/2007 18:49:39

    Désolé mais je commente presque jamais mes codes.
    C'est un défaut je sais mais c'est pour aller plus vite.
    Si tu ne comprend pas un bout tu me le dis et je l'explique.

  • signaler à un administrateur
    Commentaire de vidada le 22/05/2007 16:28:42

    Merci pour ce code qui est très clair et surtout qui montre bien la gestion des erreurs ce qui est souvent oublié dans ce genre d'exemple

  • signaler à un administrateur
    Commentaire de Hichemdev le 30/05/2007 10:39:33

    merci pour le code. mais je n'arrive pas à compiler le code soit sur DEVC++ ou VC++ par contre avec l'executable ca marche tres bien mais je veux créer l'exeucutable apres la complition chez moi.
    j'ai ouvert le Serveur et meme le client et je les ai compilé mais ça m'a donné des erreurs:
    en DEVC++:
    In function  'main':
    [Linker error] undefined reference to 'WSAStartup@8'
    [Linker error] undefined reference to 'WSAGetLastError@0'
    [Linker error] undefined reference to 'socket@12'
    [Linker error] undefined reference to 'inet_adddr@4'
    ..........
    .......... PRESQUE LES MEMES MESSAGES
    ............

    En VC++:
    cote Serveur:
    --------------------Configuration: main - Win32 Debug--------------------
    Compiling...
    main.cpp
    c:\documents and settings\hicheml\bureau\cppfrance_envoi-201-ception-fichiers-client-serveur-dev-cplusplus_41921\serveur\main.cpp(147) : error C2374: 'i' : redefinition; multiple initialization
            c:\documents and settings\hicheml\bureau\cppfrance_envoi-201-ception-fichiers-client-serveur-dev-cplusplus_41921\serveur\main.cpp(100) : see declaration of 'i'
    Error executing cl.exe.

    main.exe - 1 error(s), 0 warning(s)


    cote Client:
    --------------------Configuration: main - Win32 Debug--------------------
    Compiling...
    main.cpp
    c:\program files\microsoft visual studio\vc98\include\shlwapi.h(56) : error C2146: syntax error : missing ';' before identifier 'DECLSPEC_IMPORT'
    c:\program files\microsoft visual studio\vc98\include\shlwapi.h(56) : error C2501: 'EXTERN_C' : missing storage-class or type specifiers
    c:\program files\microsoft visual studio\vc98\include\shlwapi.h(56) : fatal error C1004: unexpected end of file found
    Error executing cl.exe.

    main.exe - 3 error(s), 0 warning(s)

    est quelqu'un peut m'aider
    merci en avance
      

  • signaler à un administrateur
    Commentaire de victorcoasne le 31/05/2007 23:26:03

    Bonjour,
    Prends le fichier projet Dev-C++ fourni dans le zip.
    C'est du au non linkage du code des librairies :
    wsock32.lib
    shlwapi.lib
    Cordialement,
    Victor

  • signaler à un administrateur
    Commentaire de Hichemdev le 06/06/2007 14:20:30

    Slt tt le monde, en fait  j'ai corrigé le probleme que j'avais. excellent maintenant je peux compiler ça marche trés bien, mais au niveau de l'execution il y a un probleme, sachant que je'utilise CFILE maintenant,
    au niveau de client j'ai supprimer la ligne:
    ifstream fichiero(adr_fic,ios::in|ios::binary);
    et je l'ai remplacé par:
    CFile fichiero;
    fichiero.Open(adr_fic, CFile::modeCreate | CFile::modeWrite);
    au niveau du serveur j'ai supprimer la ligne:

    et je l'ai remplacé par:


    quand j'excecute, voici les erreur qui je trouve:
    au niveau du client:
    send : OK
    send2 : OK
    erreur, taille du fichier nulle!

    envois non annullée.send3 : OK

    fichier envoyé avec succés !

    je veux savoir l'erreur ou en fait, parce que je trouve le fichier dans le serveur mais sa taille nulle (vide il y a rien dedant)

    quelqu'un m'aider SVP

  • signaler à un administrateur
    Commentaire de victorcoasne le 12/06/2007 21:03:44

    Là il faut appeller un spécialiste MFC car je ne code pas Microsoft.

  • signaler à un administrateur
    Commentaire de mat1597530406950 le 21/08/2007 19:58:50

    Excellent code ! Bravo tres clair !

    Mais je ne comprend pas la boucle for dans le client et le serveur pour "continuer a envoyer des données" ??

    Je parle surtout de :

    recv(id_de_la_nouvelle_socket,buffer,(buffer2-i<4096)?buffer2-i:4096,0);

    Merci d'avance :)

  • signaler à un administrateur
    Commentaire de victorcoasne le 25/08/2007 11:27:11

    C'est ça que tu comprends pas je suppose ?
    (buffer2-i<4096)?buffer2-i:4096

    En fait ça :
    recv(id_de_la_nouvelle_socket,buffer,(buffer2-i<4096)?buffer2-i:4096,0);
    C'est équivalent à :
    int variable;
    if (buffer2-i<4096)
        variable = buffer2-i;
    else
        variable = 4096;
    recv(id_de_la_nouvelle_socket,buffer,variable,0);

    C'est bien ça la question ?

  • signaler à un administrateur
    Commentaire de snpier wolf le 23/10/2007 09:45:43

    bonjours à tous,
    moi sa ne marche pas voila se que me dis le compilateur de dev-C++:
    --------------------------------------------------------
    C:\Users\gros\Desktop\Nouveau dossier (2)\Client\gcc installation problem, cannot exec `cc1': No such file or directory.
    -----------------------------------------------------
      [Resource error] no resources
    --------------------------------------------------------
    C:\Users\gros\Desktop\Nouveau dossier (2)\Client\Makefile.win [Build Error]  [Client_private.res] Error 1
    ---------------------------------------------------------

    pour koi?
    merci d'avense pour les réponses
    a++

  • signaler à un administrateur
    Commentaire de victorcoasne le 23/10/2007 22:36:44

    Je pense que tu devrais réinstaller Dev-C++ ou alors que t'as pas décompressé l'intégralité du projet dans le répertoire.

Ajouter un commentaire

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS