ENVOI/RÉCEPTION DE FICHIERS (CLIENT/SERVEUR) [DEV-C++]
piranhaworld
Messages postés10Date d'inscriptionmardi 13 avril 2004StatutMembreDernière intervention 9 juillet 2007
-
2 avril 2007 à 01:53
asma_taheni
Messages postés2Date d'inscriptionlundi 7 avril 2014StatutMembreDernière intervention 7 avril 2014
-
7 avril 2014 à 13:36
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
asma_taheni
Messages postés2Date d'inscriptionlundi 7 avril 2014StatutMembreDernière intervention 7 avril 2014 7 avril 2014 à 13:36
svp je veux ouvrir ce projet ,j'ai visual studio 2012 ,et régénérer l'exécutable,
merci de dir les etapes d'ouvrir ce projet
merci
asma_taheni
Messages postés2Date d'inscriptionlundi 7 avril 2014StatutMembreDernière intervention 7 avril 2014 7 avril 2014 à 13:32
pleas
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 14 juin 2010 à 09:16
Si tu en as un, tu vérifies s'il le bloque dans ses options.
Si tu en as pas, Windows t'as affiché un message "voulez-vous débloquer le serveur".
Pour tester avec le serveur et le client sur le même PC utilise des chemins relatifs et pas absolus.
C'est à dire qu'il faut que tes deux exécutables soit dans 2 dossiers différents et que le fichier à transférer doit être dans le même répertoire que l'exécutable qui envoi.
Si le fichier s'appelle fichier.txt, le chemin n'est rien de plus que le nom du fichier : fichier.txt
ayoubad
Messages postés3Date d'inscriptionlundi 16 mars 2009StatutMembreDernière intervention14 juin 2010 14 juin 2010 à 00:14
merci pour la reponse juste:
comment je vais savoir que mon parfeu bloque le serveur
pour le chemin c:\...\test.txt ou bien a partire du repertoir courant (\test.txt)
merci encore une fois
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 13 juin 2010 à 22:28
Oui, il faut que ton parefeu ne bloque pas le serveur et autorise le client.
L'IP du serveur sera 127.0.0.1.
S'il te dit que le chemin est introuvable c'est que tu ne lui as pas indiqué le nom d'un fichier existant ou que tu essayes de lire et écrire le même fichier.
Il faut mettre le serveur et le client dans deux dossiers différents pour tester en local.
J'espère avoir répondu à tes questions.
ayoubad
Messages postés3Date d'inscriptionlundi 16 mars 2009StatutMembreDernière intervention14 juin 2010 13 juin 2010 à 18:20
est ce que je peux executer le client et le serveur sur une seule machine ? si oui comment ?
(j'ai essayé et on me dit que le chemin est introuvable)
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 30 mai 2009 à 23:24
Bonjour,
Il y a plusieurs manière de "fixer" les chaînes de caractères :
- la plus simple est de remplacer le nom de la variable par la valeur entre guillemets (ou entrecôte [les doubles] pour les gourmets) et de virer la partie de vérification et demande de saisie de chaîne (la partie while et la déclaration de la variable).
- la deuxième (meilleure) est de faire un strcpy(adr_fic, "C:\\jevousaide.txt"); à la place de la boucle while
Pour l'adresse IP le principe est le même.
Si tu as d'autres questions n'hésites pas, on a tous débuté un jour ;)
@++,
Victor
ssx2
Messages postés7Date d'inscriptionmardi 27 juin 2006StatutMembreDernière intervention30 mai 2009 30 mai 2009 à 18:54
Salut ^^,
SUPER CODE 10,
cependant,j'ai une question à poser...
comment faire pour mettre une adresse fixe, au lieu de taper directement sur le clavier l'adresse Ip et l'adressedu fichier, je m'explique:
char adr_fic[4096];adr_fic[0]=0;
while (strlen(adr_fic)==0)
{
cout << "Entrez le chemin du fichier:";
cin.getline(adr_fic,sizeof(adr_fic));
}
je débute, et je n'ai pas compris comment faire pour remplacer la variable "adr_fic" par une variable du nom de "c:\\aidezmoi.txt", j'ai essayé mais cela ne marche pas ...
voila, encore merci pour ton code.. j'éspére que quelqu'un aura la gentillesse de me répondre ;)
SeratOfficiel
Messages postés10Date d'inscriptionvendredi 15 décembre 2000StatutMembreDernière intervention30 janvier 2009 27 janv. 2009 à 12:20
Ha je comprend mieux , je vais essayer avec une autre personne pour voir si c'est le meme message
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 27 janv. 2009 à 10:57
Tu trouvera ici toutes les erreurs des sockets (librairie réseau Windows) :
http://msdn.microsoft.com/en-us/library/ms740668.aspx Pour cette erreur c'est timeout c'est à dire qu'un des PC met trop de temps à répondre ou alors c'est la connexion qui veut pas s'établir.
As-tu bien routé le port 47836 sur ta machine ? Car je suppose que tu as une box et il faut lui dire que ce port depuis internet renvoi vers ta machine.
Imagine plusieurs machine en réseau, la box ne sait pas vers qui renvoyer si tu le lui dit pas. Donc par défaut il bloque le port pour le serveur (uniquement).
On appelle cela un parefeu matériel ou hardware (pour les fans d'anglais [c'est qui anglais ? :)]).
Sinon je t'ai ajouté à MSN, ça serait bien qu'un admin lui floute son adresse avec des étoiles pour éviter qu'il soit spammé. (oui les méchants bots adorent les adresses mails qui traînent en clair).
SeratOfficiel
Messages postés10Date d'inscriptionvendredi 15 décembre 2000StatutMembreDernière intervention30 janvier 2009 26 janv. 2009 à 19:12
Autre problemes...a dit Desole,je n'ai pas pu ouvrir la session TCP : -1 10060 après Appuyez sur une touche pour continuer...
Snif :s
Si on pouvait m'aider ou encore m'ajouter sur MSN pour mieux m'aider ^^ "azndu6-9@hotmail.fr"
SeratOfficiel
Messages postés10Date d'inscriptionvendredi 15 décembre 2000StatutMembreDernière intervention30 janvier 2009 26 janv. 2009 à 19:06
Merci pour la reponse rapide ...
Ben voui effectivement ^^ J'ai commencer le C il ya quelque années et puis j'ai trouvé que c'etait un monde tres vaste j'ai du abandonné et puis une nuit je n'arrivame pas a dormir ^^ j'ai allumer mon pc et fais de petit programme simple en C (Calculette etc ^^) Depuis j'ai repris gout ^^
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 26 janv. 2009 à 19:04
Le port est 47836.
Je pense que tu ne dois pas faire de programmation.
Je me trompe ?
SeratOfficiel
Messages postés10Date d'inscriptionvendredi 15 décembre 2000StatutMembreDernière intervention30 janvier 2009 26 janv. 2009 à 18:51
Heu..a ouvrir ^^
SeratOfficiel
Messages postés10Date d'inscriptionvendredi 15 décembre 2000StatutMembreDernière intervention30 janvier 2009 26 janv. 2009 à 18:47
Encore un probleme,si on pourrait m'éclairer :D
quand mon correspondant ouvre Client.exe...il met mon IP et la il a"Appuyez sur une touche pour continuer..."
J'ai bien fais attention de lui passer mon IP internet
J'ai desactiver mon Part feu
Y'a t-il un port a desactiver ?
SeratOfficiel
Messages postés10Date d'inscriptionvendredi 15 décembre 2000StatutMembreDernière intervention30 janvier 2009 26 janv. 2009 à 18:10
Haaa...merci ^^je me sent bete tout a coup -_-
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 26 janv. 2009 à 15:02
Tu as plusieurs possibilités pour le deviner :
1 - Tu réfléchis
2 - Tu regardes le screenshot
3 - Tu regardes le code.
Et si tu n'arrive pas à faire un seul de tous ces trucs tu peux lire la phrase qui suit :
C'est l'emplacement où se trouve le fichier que tu veux envoyer.
Pour la définition d'un chemin de fichier :
En informatique, le chemin d'accès d'un fichier ou d'un répertoire est une chaîne de caractères décrivant la position de ce fichier ou répertoire dans le système de fichiers. (Source : Wikipedia)
Bonne prog !
SeratOfficiel
Messages postés10Date d'inscriptionvendredi 15 décembre 2000StatutMembreDernière intervention30 janvier 2009 25 janv. 2009 à 15:17
J'ai sa : Entrez le chemin du fichier j'entre quel chemin ...? et de quel fichier ?
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 23 oct. 2007 à 22:36
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.
snpier wolf
Messages postés216Date d'inscriptionsamedi 11 août 2007StatutMembreDernière intervention30 mai 2011 23 oct. 2007 à 09:45
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++
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 25 août 2007 à 11:27
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 ?
mat1597530406950
Messages postés2Date d'inscriptionvendredi 30 septembre 2005StatutMembreDernière intervention14 août 2007 21 août 2007 à 19:58
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" ??
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 12 juin 2007 à 21:03
Là il faut appeller un spécialiste MFC car je ne code pas Microsoft.
Hichemdev
Messages postés5Date d'inscriptionmercredi 25 avril 2007StatutMembreDernière intervention29 mai 2007 6 juin 2007 à 14:20
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
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 31 mai 2007 à 23:26
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
Hichemdev
Messages postés5Date d'inscriptionmercredi 25 avril 2007StatutMembreDernière intervention29 mai 2007 30 mai 2007 à 10:39
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
vidada
Messages postés2Date d'inscriptionvendredi 27 février 2004StatutMembreDernière intervention11 août 2010 22 mai 2007 à 16:28
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
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 12 avril 2007 à 18:49
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.
cs_legogo
Messages postés5Date d'inscriptionvendredi 2 janvier 2004StatutMembreDernière intervention11 septembre 2008 12 avril 2007 à 12:13
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.
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 3 avril 2007 à 19:42
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...
piranhaworld
Messages postés10Date d'inscriptionmardi 13 avril 2004StatutMembreDernière intervention 9 juillet 2007 2 avril 2007 à 01:53
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é :))
7 avril 2014 à 13:36
merci de dir les etapes d'ouvrir ce projet
merci
7 avril 2014 à 13:32
14 juin 2010 à 09:16
Si tu en as pas, Windows t'as affiché un message "voulez-vous débloquer le serveur".
Pour tester avec le serveur et le client sur le même PC utilise des chemins relatifs et pas absolus.
C'est à dire qu'il faut que tes deux exécutables soit dans 2 dossiers différents et que le fichier à transférer doit être dans le même répertoire que l'exécutable qui envoi.
Si le fichier s'appelle fichier.txt, le chemin n'est rien de plus que le nom du fichier : fichier.txt
14 juin 2010 à 00:14
comment je vais savoir que mon parfeu bloque le serveur
pour le chemin c:\...\test.txt ou bien a partire du repertoir courant (\test.txt)
merci encore une fois
13 juin 2010 à 22:28
L'IP du serveur sera 127.0.0.1.
S'il te dit que le chemin est introuvable c'est que tu ne lui as pas indiqué le nom d'un fichier existant ou que tu essayes de lire et écrire le même fichier.
Il faut mettre le serveur et le client dans deux dossiers différents pour tester en local.
J'espère avoir répondu à tes questions.
13 juin 2010 à 18:20
(j'ai essayé et on me dit que le chemin est introuvable)
30 mai 2009 à 23:24
Il y a plusieurs manière de "fixer" les chaînes de caractères :
- la plus simple est de remplacer le nom de la variable par la valeur entre guillemets (ou entrecôte [les doubles] pour les gourmets) et de virer la partie de vérification et demande de saisie de chaîne (la partie while et la déclaration de la variable).
- la deuxième (meilleure) est de faire un strcpy(adr_fic, "C:\\jevousaide.txt"); à la place de la boucle while
Pour l'adresse IP le principe est le même.
Si tu as d'autres questions n'hésites pas, on a tous débuté un jour ;)
@++,
Victor
30 mai 2009 à 18:54
SUPER CODE 10,
cependant,j'ai une question à poser...
comment faire pour mettre une adresse fixe, au lieu de taper directement sur le clavier l'adresse Ip et l'adressedu fichier, je m'explique:
char adr_fic[4096];adr_fic[0]=0;
while (strlen(adr_fic)==0)
{
cout << "Entrez le chemin du fichier:";
cin.getline(adr_fic,sizeof(adr_fic));
}
je débute, et je n'ai pas compris comment faire pour remplacer la variable "adr_fic" par une variable du nom de "c:\\aidezmoi.txt", j'ai essayé mais cela ne marche pas ...
voila, encore merci pour ton code.. j'éspére que quelqu'un aura la gentillesse de me répondre ;)
27 janv. 2009 à 12:20
27 janv. 2009 à 10:57
http://msdn.microsoft.com/en-us/library/ms740668.aspx
Pour cette erreur c'est timeout c'est à dire qu'un des PC met trop de temps à répondre ou alors c'est la connexion qui veut pas s'établir.
As-tu bien routé le port 47836 sur ta machine ? Car je suppose que tu as une box et il faut lui dire que ce port depuis internet renvoi vers ta machine.
Imagine plusieurs machine en réseau, la box ne sait pas vers qui renvoyer si tu le lui dit pas. Donc par défaut il bloque le port pour le serveur (uniquement).
On appelle cela un parefeu matériel ou hardware (pour les fans d'anglais [c'est qui anglais ? :)]).
Sinon je t'ai ajouté à MSN, ça serait bien qu'un admin lui floute son adresse avec des étoiles pour éviter qu'il soit spammé. (oui les méchants bots adorent les adresses mails qui traînent en clair).
26 janv. 2009 à 19:12
Snif :s
Si on pouvait m'aider ou encore m'ajouter sur MSN pour mieux m'aider ^^ "azndu6-9@hotmail.fr"
26 janv. 2009 à 19:06
Ben voui effectivement ^^ J'ai commencer le C il ya quelque années et puis j'ai trouvé que c'etait un monde tres vaste j'ai du abandonné et puis une nuit je n'arrivame pas a dormir ^^ j'ai allumer mon pc et fais de petit programme simple en C (Calculette etc ^^) Depuis j'ai repris gout ^^
26 janv. 2009 à 19:04
Je pense que tu ne dois pas faire de programmation.
Je me trompe ?
26 janv. 2009 à 18:51
26 janv. 2009 à 18:47
quand mon correspondant ouvre Client.exe...il met mon IP et la il a"Appuyez sur une touche pour continuer..."
J'ai bien fais attention de lui passer mon IP internet
J'ai desactiver mon Part feu
Y'a t-il un port a desactiver ?
26 janv. 2009 à 18:10
26 janv. 2009 à 15:02
1 - Tu réfléchis
2 - Tu regardes le screenshot
3 - Tu regardes le code.
Et si tu n'arrive pas à faire un seul de tous ces trucs tu peux lire la phrase qui suit :
C'est l'emplacement où se trouve le fichier que tu veux envoyer.
Pour la définition d'un chemin de fichier :
En informatique, le chemin d'accès d'un fichier ou d'un répertoire est une chaîne de caractères décrivant la position de ce fichier ou répertoire dans le système de fichiers. (Source : Wikipedia)
Bonne prog !
25 janv. 2009 à 15:17
23 oct. 2007 à 22:36
23 oct. 2007 à 09:45
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++
25 août 2007 à 11:27
(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 ?
21 août 2007 à 19:58
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 :)
12 juin 2007 à 21:03
6 juin 2007 à 14:20
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
31 mai 2007 à 23:26
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
30 mai 2007 à 10:39
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
22 mai 2007 à 16:28
12 avril 2007 à 18:49
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.
12 avril 2007 à 12:13
3 avril 2007 à 19:42
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...
2 avril 2007 à 01:53
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é :))