Bonjour je désire envoyer des fichier via winsock je me suis un peu rensigné mais rien de vraiment concret c'est pourquoi j'ai besoin d'infos précises pour envoyer des fichiers ( pas bien gros, 1 ou 2 mb via winsock ).
Merci
Bonjour je désire envoyer des fichier via winsock je me suis un peu rensigné mais rien de vraiment concret c'est pourquoi j'ai besoin d'infos précises pour envoyer des fichiers ( pas bien gros, 1 ou 2 mb via winsock ).
Merci
regarde ce code de Delbeke :
http://www.developpez.net/forums/sho...d.php?t=188815
je comprends kedal, y me faut une methode precise ( dans quelle variable enregistrer le fichier , comment l'envoyer et le recuperer )
Ben pour envoyer un fichier par winsock, il faut ce qu'on appelle un protocole entre l'emetteur et le recepteur. le composant que j'ai écrit est basé sur winsock et emploie le protocole FTP.
D'abord , on se connecte l'un a l'autre, çà c'est géré par winsock, ensuite on s'identifie Nom et mot de passe, ensuite on dit ou il faudra stocker le programme et puis on envoie le fichier morceau par morceau (on n'envoie pas tout en une fois), puis on dit poliment au revoir
C'est pour çà que c'est un peu compliqué, beaucoup même![]()
Maintenant, rien ne t'empeche de créer ton propre serveur et ton propre client avec un protocole hyper simplifé.
Je ne suis qu'un utilisateur lambda de developpez
mais quand je lis ça :
Delbeke, t'es trop sympaje comprends kedal, y me faut une methode precise ( dans quelle variable enregistrer le fichier , comment l'envoyer et le recuperer )
j'ai pas eu le temps de le dire !!Envoyé par ProgElecT
bah en gros,
il faut donc un client et u nserveur, et que les winsock soient configuré (que le client ait l'adresse du serveur en ip distante et vis-versa, ainsi que le même numero de port.. enfin, rien de bien illogique). je conseil se choisir UDP car c'est plus simple.
ensuite, on va dire que le client envoie et que le server recoit (ou l'inverse peu importe)
en version ultra simpliste et sans controle...
le client va :
1) ouvrir le winsock
2) envoyer un 1er message d'info avec le nom du fichier, la taille
exemple la trame suivante "JENVOIE:monfichier.txt:1234"
"JENVOIE" est un code pour dire ce que l'on fais : là on viens de definir notre protocole a nous
"monfichier.txt" c'est le nom du fichier
"1234" c'est la taille
1bis) on peu imaginer que le client attende ici une confirmation du serveur.. je ne rentre pas dans ce detail
3) rentre dans une boucle tout conne ou on va lire par exemple 512 octet du fichier a chaque fois et les envoyer
exemple de trame : "DONNEE:dfdsdfsdfdsfsd"
4) c'est fini.
le serveur :
1) comme le client ouvre (bind) le socket et attends
2)
- s'il recoit un "JENVOIE" il enregistre le nom du fichier (ouvre en ecriture)
- s'il recoit un "DONNEE" il ajoute les donnée au fichier
finalement c'est tout con.
ensuite a toi de créer ton protocole pour qu'il soit sufisement robuste.. le totu va dependre de la fiabilité de ton reseau (en LAN avec une bonne bande passante, ou sur internet avec des pertes....)
J'ai été amené a gerer ce genre de probleme, c'est assez interressant a faire, tres formateur, et quand même toujours plus simple que l'implementer le protocole FTP (RFC 959)
PS : bien sur la version que je donne est un peu pourris, j'ai pas traité de message de fin (pour fermer le fichier) et d'ailleur, moi perso je le stock en memoire avant de l'ecrire sur le disque... dans ce cas attention a la memoire dans le cas ou on ne recoit jamais de trame de finenfin il y a plein de trucs a penser....
mais déjà renseigne toi un minimum sur le reglage du control winsock, c'est pas bien dur et si déjà c'est insurmontable, laisse tombé![]()
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager