begin process at 2010 02 10 12:22:05
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Réseaux & Internet

 > ENVOIE/RECEPTION DES FICHIERS(BASIQUE)

ENVOIE/RECEPTION DES FICHIERS(BASIQUE)


 Information sur la source

Note :
5,5 / 10 - par 2 personnes
5,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Réseaux & Internet Classé sous :transfert, fichiers Niveau :Initié Date de création :18/11/2005 Date de mise à jour :19/11/2005 10:58:29 Vu / téléchargé :6 756 / 1 717

Auteur : anonyme_man_in_this_world

Ecrire un message privé
Commentaire sur cette source (17)
Ajouter un commentaire et/ou une note

 Description

en se basant sur le modele client / serveur ,j'ai essayé de creer 2 programmes : un qui

envoie un fichier ,et l'autre qui le recoit afin de ameliorer mes connaissances en

programmation reseau.j'ai essayé de commenter les parties qui peuvent paraitre dificilles à

comprendre .

bonne lecture.

Source

  • // tout est dans zip
// tout est dans zip

 Conclusion

j'ai testé les 2 programmes et ils ont bien fonctionné avec les fichiers .txt .cepandant,je

suis entrain d'essayer de resoudre le bug qui se pose avec des fichiers binaires .

n'oubliez pas de renommer les fichiers client.ex_ en client.exe et serveur.ex_ en serveur.exe.




 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   client server

Télécharger le zip


 Historique

19 novembre 2005 10:58:29 :
changement du titre de la source

 Sources du même auteur

Source avec Zip SRV(SENDING AND RECEIVING FILES) 1.2
Source avec Zip SRV(SENDING AND RECEIVING FILES) 1.0

 Sources de la même categorie

Source avec Zip TIM_RESEAU, CLASSES POUR RESEAU COMPLET par williamallas
Source avec Zip INTERNET IP FINDER TROUVER VOS ADRESSE IP (INTERNET) par xmustapha
Source avec Zip CLIENT/SERVEUR AVEC TSOCKETSERVER & TCLIENTSOCKET par xmustapha
Source avec Zip REMOTE SHELL GEN par ganjarasta
PROXY IRC SIMPLE (WINDOWS/WINSOCK) par _michel

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture COMPRESSION FICHIERS ALGORITHME HUFFMAN C par xtremejames183
Source avec Zip Source avec une capture TRANSFERT DE FICHIER TCP [GCC - GTK] par ganjarasta
APPLICATION DE TRANSFERT DE FICHIERS SOCKET CLIENT SERVEUR U... par metalicien
Source avec Zip SRV(SENDING AND RECEIVING FILES) 1.0 par anonyme_man_in_this_world
Source avec Zip TCP/IP : TRANSFERT DE FICHIERS par delfare

Commentaires et avis

Commentaire de anonyme_man_in_this_world le 18/11/2005 19:51:33

n'hesitez pas de me signaler les bugs que vous avez remarqué dans la

source .

et n'oubliez pas que c'est ma premiere source sur cppfrance donc ...

Commentaire de max12 le 19/11/2005 02:20:19 administrateur CS

Je m'excuse mais je trouve que c'est pas très élaboré comme système de transfert, mais c'est malgré tout commenté.

PS : Je note pas (plus), je trouve que ce genre de notation vaut rien (sans critère)
PS2 : Je t'encourage à continuer pour une version qui fonctionne multi-transfert
PS3 : Bonne prog
PS4 : A+

Commentaire de anonyme_man_in_this_world le 19/11/2005 09:10:14

merçi pour ton encouragement max12 ,ça sera simpa de

ta part si tu precis les points faibles du systeme

de transfert.

j'atends avec impatience de nouveaux commentaires

et des remarques qui peuvent m'aider a envoyer les

fichiers binaires .
A+

Commentaire de MuPuF le 19/11/2005 09:46:24

mdr !!!!!!!!!!!!!
J'ai deja fais ce que tu as fais, mais avec en plus la possibilitée de partager les fichier via un serveur ftp page perso ou alors un serveur http local comme easy php.

Voila le lien:
http://www.cppfrance.com/code.aspx?ID=33958

Le pire c'est que tu as choisis le meme nom que mon prog ... (qui au passage risque de passer en 1.8 today car la liste de modification est impressionnante ...)

Commentaire de juki_webmaster le 19/11/2005 10:22:52

Trop TROP basique... aucun protocole ,rien...
C'est a revoir.

Commentaire de anonyme_man_in_this_world le 19/11/2005 11:19:27

oui c'est trés basique.je crois(avis personnel)qu'une source

basique et claire et utile vaut mieux qu'un longe non commenté.

MuPuf >> j'ai changé le titre de la source . tu as

utilisé des fonctions de Wininet ,par contre moi je me suis servi

de Winsock.h donc c'est different.

Commentaire de BruNews le 19/11/2005 13:19:55 administrateur CS

Tu dis toi-même:
"ouverture en lecture seule en mode txt"
n'y aurait-il pas relation de cause à effet avec ton problème d'octets corrompus à la réception ?

Commentaire de anonyme_man_in_this_world le 19/11/2005 14:28:25

"ouverture en lecture seule en mode txt"

brutNews >> j'ai changé le mode d'ouverture du mode

texte en mode binaire dans les deux sources mais ça

donne rien (: !
  

Commentaire de BruNews le 19/11/2005 15:39:33 administrateur CS

send(sock,buffer,strlen(buffer),0);
J'espère que tu as changé cela aussi...

Commentaire de juki_webmaster le 19/11/2005 15:44:00

J'ai fait un client/serveur p2p basique (list de fichier/telechargement) et j'ai utiliser ceci (sa peut sembler sal pour certains, je comprend totalement) :

  while (error >= 1)
{
  errror = fread (&octet, 1, 1, filetosend);
  if (error >= 1)
    {
      printf ("%c %c\n", &octet, octet);
      if (send (GLOBAL_client_sock, &octet, 1, 0) ==
  0)
{
  printf
    ("* Client %d c\'est enfuit prematurement!\n",
     GLOBAL_client_sock);
}
    }
}

En verifiant en calculant le chekcsum du fichier de base et celui  du fichie recu, ils sont pareil (d'ailleuir le petit procole de mon truc p2p supporte cette fonctionalité avec md5.c/md5.h)

Commentaire de MuPuF le 19/11/2005 18:05:41

Anonyme_man_in_this_world : La version 1.7 est surtout basée sur wininet, pour la 1.8 j'ai recodé la majeure partie avec winsock, il ne me reste que la suppression des fichiers sur le serveur qui est avec wininet, surrement pour la 1.9 ...

Par contre pour le p2p j'utilise seulement winsock, il est impossible d'utiliser wininet pour ce genre de transfert a par d'utiliser le protocole ftp ce qui serait bien lourdingue ...

Commentaire de max12 le 20/11/2005 04:37:53 administrateur CS

Ne jamais au grand jamais utiliser strlen pour traiter du binary !! Car, lorsque tu veux envoyer un fichier BMP (par tranche de 1 ko) par exemple et que l'entête mesure 1024 bytes (c'est un exemple ! En réalité c'est 54 bytes) il va envoyer simplement envoyer la partie avant d'avoir un zéro dans le 1024, donc si l'offset 53 est 0 alors il va envoyer 54 bytes sur les 1024 qui était dû (C'est pas négligeable ! Sachant qu'un seul perdu c'est trop). Pour savoir combien de bytes qu'il faut envoyer avec send() il faut que tu fasse read et que tu reçoives le nombre d'octet qui on été lu sur les 1024 demandé (ou 256 bytes selon ton prog). Moi d'habitude j'utilise l'API Windows pour ReadFile() ... mais avec une bonne documentation sur Read c'est faisable (p-ê que c'est le retour de la fonction qui dit les bytes lus ?). Ensuite il te faut un bon protocole contenant le nom du fichier et le nombre d'octets qu'il pèse et prévois un accept ou deny en conséquence (p-ê même un file resume :) Contrairement à MSN :@) Et l'idée du checksum et bien je crois dans ce que tu veux faire c'est pas vraiment essenciel étant donné que la vérification d'erreur est automatique ... (Sauf dans un client P2P ou les fichiers diffèrent selon les sources).


A+

Commentaire de anonyme_man_in_this_world le 20/11/2005 18:23:45

premierement ,je vous remerçi pour vos

explications :) .

je commence a baisser mes mains !! ça commence

a m'enerver !.voici les changements que j'ai fait

afin de permetre l'envoie et la reception des

fichiers binaires et au meme temps j'ai essayé de

bien simplifier le code :
/**************************************************/
-coté serveur :
1- ligne 36 : _O_BINARY au lieu de _O_TEXT
2- transfert : recv(csock,buffer,256,0) ;  //reception des donnees
write(file,buffer,sizeof(buffer)) ; //ecriture du buffer
size = size - 256 ;
memset(buffer,0,256)


coté client :

1- ouverture binaires pas texte.
2- transfert : read(file,buffer,256) ; //lecture
send(sock,buffer,256,0) ; // envoie de buffer
size = size - 256 ;
memset(buffer,0,256) ;

/**************************************************/

merçi d'avance .

Commentaire de MuPuF le 20/11/2005 18:28:13

Serveur : tu as fais une erreur au recv et write :
int size=recv(csock,buffer,256,0) ;  //reception des donnees
write(file,buffer,size) ; //PAS DE SIZEOF BUFFER !!!!!!!!!

client :
int size = read(file,buffer,256) ; //lecture
int NbOctetsEnvoyes=send(sock,buffer,size,0) ; // envoie de buffer

Voila j'espere pour toi que ça va marcher.

Commentaire de anonyme_man_in_this_world le 21/11/2005 00:14:22

je te remerçie MuPuf pour ton aide , mais malheureusement ça marche toujours pas (:.

serveur :
while(size > 0)
{
int r = recv(csock,buffer,256,0) ;  //reception des donnees
write(file,buffer,r) ; //ecriture du buffer
size = size - r ;
memset(buffer,0,256) ;
}
client :
while(size > 0)
{
int sizet = read(file,buffer,256) ; //lecture
r = send(sock,buffer,sizet,0) ; // envoie de buffer
size = size - r ;
memset(buffer,0,256) ;
}

merçi d'avance

Commentaire de MuPuF le 21/11/2005 21:31:14

evite la redefinition de r a chaque boucle, met int r au dessus du while.
... envois moi le par mail je vais te corriger ça (regarde tes MP)

Commentaire de ptifleur le 24/05/2006 11:14:50

salut ,j'adore ta source parceque étant débutant ,je peu me faire une idée  sur la programmation reseau .pense tu que je pourrai envoyer des images bitmaps ou bien que fodrait il faire pour que je puisse les envoyer .

a+  

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Sockets : Transfert de fichiers. [ par guiguikun ] Bonjour,J'ai créé un client/serveur qui transfert des fichiers.Après le transfert, les 2 fichiers ont la même taille, mais celui qui a été transféré n Client/serveur Socket transfert de plusieurs fichiers [ par atifelkhachine ] Bonjour.quelqu'un peut me donner un pti guide pour realiser une application C/S de transfert de plusieurs fichiers binaires en utilsant les sockets . transfert de fichiers sous linux [ par lyas ] Salut,Je suis debutante en programation reseau et je voudrais transferer des fichiers via un serveur sous linux.j'ai reperé un programme posté par se transfert fichiers sur réseau [ par webboyboy ] Salut, je suis obligé de récupérer tous les mois des fichiers dans mon entreprise via le réseau.Je lance une application batch DOS fichier batch [ par khwiniz ] salut, je cherche comment je peux lancer le logiciel Filezilla de FTP et faire le transfert des fichiers log chaque 15 min (chaque 15 min on fait le t transfert des fichiers [ par mezzine ] Bonjour , je veux savoir la procedure de transfert des fichiers de mon ordinateur vers le serveur ftp.ifrance.con , merci . Application Socket transfert fichiers [ par aymane2006 ] bjr en fait je cherche une application de transfert de fichiers,un ou plusieurs clients qui se connectent a un serveur,une fois la connection établie Transfert de gros fichiers via FTP [ par fabricioliking ] BonjoursVoila j'ai besoin d'un petit coup de main faute d'être un peu perdu.J'ai pour projet sous borland 6 de permettre à chaque utilisateurs de mon Transfert de fichiers [ par kiitos ] Mes deux programmes n'arrivent pas toujours à s'envoyer des fichiers correctement, est ce qu'il y a un moyen de faire un serveur qui envoie des fichie transfert de fichiers avec les sockets et les MFC [ par hassen85 ] Salut je veux avoir un code source contenant un transfert de fichiers entre un client et serveur en utilisant les sockets et avec MFC...Merci d'avance


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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,842 sec (4)

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