begin process at 2012 05 30 10:21:23
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

transfert de fichiers


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

transfert de fichiers

jeudi 5 janvier 2006 à 22:16:15 | transfert de fichiers

anonyme_man_in_this_world

salut  !

recemment ,j'ai testé le programme que j'ai deposé sur le

site avec deux de mes amis et ça n'a pas l'air de

fonctionner ,pourtant lorsque je teste sur mon pc tout

fonctionne bien ,voila mon code :
/*************************************/
// client :

#include <winsock.h>
#include <stdio.h>
#pragma comment(lib, "wsock32.lib")

int main()
{
 char buffer[8000] ;
 char nomfichier[30] ;

 printf("fichier : ") ;
 scanf("%s",nomfichier) ;      //fichier.txt
 FILE* file = fopen(nomfichier,       //ouverture en lecture seule en mode txt
  "rb") ;
 if(file == NULL)
 {
  printf("erreur lors l'ouverture du fichier\n") ;
  exit(-1) ;
 }

 WSADATA WSAData;
 WSAStartup(MAKEWORD(1,0), &WSAData);
 SOCKET sock;
 printf("Ip : ") ;
 scanf("%s",buffer) ;
 SOCKADDR_IN sin;
    sock = socket(AF_INET, SOCK_STREAM, 0);
 
      // les proprietes du socket du server
 sin.sin_addr.s_addr = inet_addr(buffer);
 sin.sin_family     = AF_INET;
 sin.sin_port     = htons(4444);
 if(connect(sock, (SOCKADDR *)&sin, sizeof(sin)) == INVALID_SOCKET)
 {
  printf("la connection a echoué\n") ;
  getchar() ;
  return 1 ;
 }
 printf("connection etablie\n") ;
 send(sock,nomfichier,30,0) ;
 recv(sock,nomfichier,30,0) ;
 int SizeReaded = 1 ;
 long SizeSended = 1 ;
 printf("transfert des données en cours...\n") ;
 
 while(SizeReaded>0 && SizeSended>0)
 {
  SizeReaded = fread(buffer,1,8000,file) ;
  SizeSended = send(sock,buffer,SizeReaded,0) ;
 }
 
 fclose(file) ; // fermeture du fichier
 closesocket(sock) ;
 WSACleanup() ;
 printf("fichier bien envoye\n") ;
 printf("appuyer sur une touche pour sortir ...") ;
 getchar() ;
 getchar() ;
 return 1;
}
/***********************************/
// server

#include <stdio.h>    // printf
#include <winsock.h>
#pragma comment(lib, "wsock32.lib")

int main()
{
 char buffer[8000] ;
 char nomfichier[30] ;
    memset(nomfichier,0,30) ;
 printf("veuillez attendre que le client se connecte ...\n") ;

 WSADATA WSAData;
 WSAStartup(MAKEWORD(1,0), &WSAData);
   
 SOCKET sock;
 SOCKET csock = INVALID_SOCKET;
 SOCKADDR_IN sin;
 sock = socket(AF_INET, SOCK_STREAM, 0);

 sin.sin_addr.s_addr = INADDR_ANY;
 sin.sin_family     = AF_INET;
 sin.sin_port     = htons(4444);

 bind(sock, (SOCKADDR *)&sin, sizeof(sin));
 listen(sock, 1);
 int a = sizeof(sin) ;
 while(csock == INVALID_SOCKET)
 {
  csock = accept(sock,(SOCKADDR*)&sin,&a) ;
 }
 printf("connection etablie\n") ;
    recv(csock,nomfichier,30,0) ;
 send(csock,nomfichier,30,0) ;
 FILE*file = fopen(nomfichier,"wb") ;
    if(file == NULL)
 {
  printf("erreur lors l'ouverture du fichier\n") ;
  exit(-1) ;
 }
 long SizeRecv = 1 ;
 int SizeWrited = 1 ;
 printf("reception des donnees ...\n") ;

 while(SizeRecv>0 && SizeWrited>0)
 {
  SizeRecv = recv(csock,buffer,8000,0) ;  //reception des donnees
  SizeWrited = fwrite(buffer,1,SizeRecv,file); //ecriture du buffer
 }
 fclose(file) ;// fermeture du fichier
 printf("fermeture du fichier \n") ;
 closesocket(sock) ;
 WSACleanup() ;
 printf("transfert terminé fichier bien recu \n") ;
 printf("appuyer sur une touche pour sortir ...") ;
 getchar() ;
 return 1;
}
/****************************/
merçi d'avance


vendredi 6 janvier 2006 à 09:22:25 | Re : transfert de fichiers

Arnotic

Administrateur CodeS-SourceS
Tu pourrais peut-être préciser un peu plus le problème au lieu de donner le code de ton programme.

@+
Arnotic,
Admin CS,
[ Lien ]
MVP Visual C++
vendredi 6 janvier 2006 à 10:15:13 | Re : transfert de fichiers

Joky

Membre Club
Le problème c'est que ça ne marche qu'en Local :)

if(!Meilleur("Joky")) return ERREUR;<

vendredi 6 janvier 2006 à 14:24:35 | Re : transfert de fichiers

anonyme_man_in_this_world

wé ,c 'est ça  ! le probleme c'est que ça ne marche qu'en Local  !

lorsque j' execute les deux programmes sur mon pc, tout marche bien ,meme si je

valide l'ip internet . Mais lorsque je l'ai testé avec un de mes amis il n'a pas marché !!

merçi d'avance



Cette discussion est classée dans : file, printf, sin, sock, nomfichier


Répondre à ce message

Sujets en rapport avec ce message

erreur completement inexplicable ! [ par anonyme_man_in_this_world ] salut  ! lorsque j' execute les deux programmes sur mon pc, tout marche bien ,meme si je valide l'ip internet . Mais lorsque je les ai testé avec mes prb a la compilation vous vc++ [ par shadow1779 ] Bonjour,j'ai tenté de faire un programme en C utilisant les sockets, la personne qui lance son programme choisi elle meme l'ip et le port a se connect smtp en socket [ par XKaliBur ] J'ai essayer de faire le plus simple possible mais ça marche pas... est-ce que quelqu'un aurais une idée... Parce que quand je le fait en telnet ça ma [C] Probleme Socket [ par firemax ] Voila le code : En gros je sais pas qu'elle est le probleme et je n'est aucun message d'erreur :D [code]#include "lib.h" int main() {     int sock pb socket [ par surfeurnet ] voici mon programme qui a pour l'instant pour unique but de se connecter à un serveur :# include # include # pragma comment (lib,"w32_32.lib")char ip, erreur 10038 [ par made_in_france ] Hello ! j'ai un probleme avec la fonction bind de mon programme. En effet cette fonction me renvois l'erreur 10038 « attempted ». Est ce que quelqu'un Connexion serveur client réseau [ par matad0r ] Bonjour ! Ceci est mon premier post ! Voilà mon problème : j'ai créer deux applications, une cliente et une serveur. Mais le problème est que elle ne Client / Serveur => Je m'enmèle les pinceaux avec le buffer, les boucles etc. [C] [ par matad0r ] Bonjour, bonjour!J'ai récemment créé une petite application client/serveur de rien du tout (je suis débutant), en m'aidant de ça : http://c.developpez socket trop lents [ par cid7777777 ] bonjour,jessaye de faire un jeu qui peu se jouera 2 en reseau local.je ne connais absolument rien en reso, mais en fouillant sur le net,  jai trouver


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales