[win32][vc++6] filesender

Soyez le premier à donner votre avis sur cette source.

Vue 12 496 fois - Téléchargée 1 326 fois

Description

Bon voila il arrive enfin ce petit bébé.
Son but dans la vie (non pas faire chier) c'est d'envoyer des fichiers à un client par n'importe quel moyen :
-Envois sur un serveur ftp puis il donne le lien http d'une page php qui permet au client de visonner le fichier si possible et de le télécharger.
-Envois par P2P aux clients qui ont aussi ce programme (on est une 10ene pour l'instant) tjs par l'intermédiaire d'un lien(à la emule mais en plus évolué), le protocole permet le re-téléchargement des parties corrompus, la reprise des téléchargement intérrompus et les trés gros fichiers.
-Envois par serveur local, pour ceux qui ont un serveur local chez eux (comme apache), FileSender leurs proposent de copier le fichier qu'ils veulent envoyer dans un repertoire local du serveur puis ensuite de construire un lien http classique.

Il y a 2 facon de choisir le mode d'envois du fichier :
-Lancer le programme et choisir ... (lent ...)
-Depuis explorer faire un click droit sur le fichier qu'on veut envoyer et cliquer sur le mode d'envois choisis (cf Cap) (tres rapide).

Vous allez me dire, pourquoi faire ça ? msn le fait ! mais msn c'est de la ***** en transfert de fichier, 4 ko/s c'est vraiment pas suffisant pour se passer des clips. Avec le FileSender j'atteinds 100% d'utilisation de la ligne (je passe de 4 a 93 Ko/s :-D). Et puis c'est tellement agréable d'utiliser la bande passante d'un FAI pour le plaisir des usagés et surtout de celui qui recoit le fichier à fond de ses capacitées (vous avez jamais souhaité qu'un transfert msn se termine aussi vite que si vous téléchargiez sur un serveur public ?)

Source / Exemple :


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

                    • **********
                    • FileSender **********
                    • **********
                    • By MùPùF **********
Copyright (C) 2005 ((MuPuF)) <Programmeur.fou@free.fr> Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes de la Licence Publique Générale GNU publiée par la Free Software Foundation (version 2 ou bien toute autre version ultérieure choisie par vous). Ce programme est distribué car potentiellement utile, mais SANS AUCUNE GARANTIE, ni explicite ni implicite, y compris les garanties de commercialisation ou d'adaptation dans un but spécifique. Reportez-vous à la Licence Publique Générale GNU pour plus de détails. Vous devez avoir reçu une copie de la Licence Publique Générale GNU en même temps que ce programme ; si ce n'est pas le cas, écrivez à la Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, États-Unis.
  • /

Conclusion :


Si le programme venait à etre mis a jour, il le serait en premier sur mon site ( http://programmeur.fou.free.fr/blog ) et si ça marche nickel ben ensuite direct sur cpp france. Sachez que l'on peux le mettre à jour directement. Il suffit de lancer FileSender, faire edition -> MAJ, si il y a une nouvelle MAJ il vous propose de la télécharger (maintenant à chaque fin de transfert il teste la MAJ).

J'attend vos commentaires car j'ai énormément appris avec ce programme (en particulier avec les sockets et je remercis xterm in hate pour son aide) donc possible que y'ais quelques petits trucs qui n'aille pas.

Je tiens a préciser que ce programme marche depuis le 10 Aout et que depuis je le rend de plus en plus polyvalent et moins buggé, vous profitez ici de la v1.8, sur les 10 personnes qui le testent aucune n'a trouvé de bugs, donc j'espere que ça marchera chez tout le monde.

Si vous appréciez mon programme, un mail ou les commentaires pour m'en avertir, ça me permettra de savoir si j'ai aidé du monde ou pas (c'étais mon but quand j'ai fais ce prog).

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
123
Date d'inscription
vendredi 14 novembre 2008
Statut
Membre
Dernière intervention
18 juin 2012

salut,
je voulais savoir si tu a utiliser laide graphique winapi pour t boite de dialog.
++
Messages postés
536
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
22 août 2008

dsl, mais tu es pathétique ...

Déja, apprend à lire, j'ai mis "il est plutôt complet pour le p2p", ce qui est trés différent de "Il est plus complet".
Deuxièmement, je t'interdit de dire que j'ai copié/collé un programme du net.
J'ai entièrement codé de A à Z ce programme excepté l'implémentation du md5 (exemple trouvé dans la rfc même, mais pourquoi ré-inventer la roue), j'ai moi même bougé mon cul pour recoder ENTIÈREMENT l'envoi de fichier par le protocole ftp rien qu'en lisant la RFC. Je n'ai copié aucun exemple.

Ensuite, j'ai créé un protocole de transfert P2P QUI GERE LES ERREURS DE TRANSFERTS grace à une table de hash en md5, qui supporte la reprise des téléchargement et se reconnecte automatiquement.

Je ne vois pas ce que viens faire ton déballage de ta pseudo connaissance du c sur les fichiers, qu'est ce qu'on s'en bat de la vitesse du système de gestion brut quand on envoi tout par socket, c'est vraiment pathétique ...

Ensuite, ce n'est pas ma faute si tu comprends pas ce que c'est que la programmation style c, j'avoue que le mélange du c et du c++ n'est pas génial, mais les threads sont TRES FACILEMENT réutilisable, suffit de remplir 2 structures et d'ajouter le fichier Threads.cpp . De toute facon, ce code n'a pas vocation à être trés modulaire.
Si tu veux te refaire un programme comme ça, tu prends une librairie qui gère le ftp et le p2p.
L'important est ici de montrer les principes de base des transferts de fichiers et l'application qu e j'ai faite autour (ce qui est plutôt rare sur cpp france).
Je n'ai pas voulu prendre une librairie car, justement, je voulais tout recoder par moi même pour apprendre. et si tu peux faire mieux, fais-en profiter la communauté. Je me considère comme un éternel débutant depuis maintenant plus de 7 ans. J'ai donné ce dont j'étais capable, partagé mes sources (contrairement à toi) et mes connaissances.
Le code de maladeudeu est bon mais n'est pas exploitable, le mien en revanche a été testé des milliers de fois par plus d'une dizaine d'utilisateurs réguliers.

En programmation, tout est facile si on décompose, alors ta remarque sur le fait qu'ajouter une interface win32 n'était pas très difficile, je te dirai que c'est aussi le cas pour tout le reste.

De toute facon, je n'ais fais aucun jugement de valeur sur son programme, il fait ce qui est dit dans le titre. Un point c'est tout.

J'ai plutôt l'impression que c'est toi le noob, qui ne connait qu'en théorie les choses, que tu avais envie de cracher et que tu as sauté sur l'occaz dés que tu es tombé sur mon post parce que tu as lu ce que tu voulais y lire.

"Pour resumer tu a poster: "T'es trop con" sans meme avoir reflechi deux minute sur mon source" comme l'aurait fait un élève ultra formaté qui ne supporte pas qu'on ne code pas comme lui et ses profs. Poste et on verra ce que tes codes valent, et après tu pourras peut être dire si telle ou telle personne est un noob (chose que je trouve en soi complément absurde, profondément stupide et vaniteux).

Si tu as quelque chose à répondre à ça, viens me le dire en privé, ce message n'a rien à faire dans les commentaires du source ...
Messages postés
21
Date d'inscription
mardi 8 mars 2005
Statut
Membre
Dernière intervention
12 juillet 2009

ton code n'est pas plus complet, tu demande juste le port en plus, pas de mfc.

Au niveau du code meme, tu a juste copier coller un code d'internet (ou reutiliser un exemple de winsock ...) et tu y a rajouter une interface win32 , rien de bien difficile, de plus le code sur lequel tu a poster ( cf: http://www.cppfrance.com/code.aspx?ID=42241) utilise le systeme de gestion brut qui le moyen le plus rapide de manipuler les fichier, alors que toi tu utilise un buffer, alors que tu n'utlise pas du tous les possibilités du buffer (gestion des erreur dans le transphers ... )

Pour resumer tu a poster: "venez voir ma source elle est plus complete" sans meme avoir reflechi deux minute sur sa source; elle est bien meilleur que la tienne, ton code n'a meme pas été programmer en but d'etre reutiliser...
manque de fonction ?? ...
ou sont les variable en debut de prog ?? ...

>Bref reflechi avant de poster de programmer ... nioubi :)
Messages postés
536
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
22 août 2008

Re, bon, c'est juste pour dire que child_of_k0rn@hotmail.com n'est plus valable, un MP et je vous passe la nouvelle avec plaisir ;-)

http://programmeur.fou.free.fr/blog/?sectionid=8 pour les news

En résumé, je bosse sur un systeme de plugin mais aussi d'une dll de transfert de fichier (les 3 modes supportés le seront tjs) ainsi, les transferts de fichiers ne feront plus chier personne lol (encore faut-il le finir lol mais c'est de l'open source ;-)

@+, bonne prog
Messages postés
536
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
22 août 2008

et oui je sais, je suis lent, mais je passe tout mon temps dessus depuis le debut de l'année.
C'est chiant la TS lol.
Vila.
Pour le coup, vous avez vraiment un programme ultra fonctionnel (plus de trafiquage).
Et celui la a vraiment bénéficié d'une beta test trés approfondie. J'ai de la chance d'avoir des potes qui en sont fan lol.
Bon dl, le mieu encore est d'aller la chercher ici : http://programmeur.fou.free.fr/blog/?sectionid=4

Pour la 1.9 :
-faire une page de test de config p2p (ouverture de port)(En cours)
-Passer l'exe de Mise A Jour, la suppression des fichiers en socket (je me plaint)
-Statistiques de dl de fichiers ?
-Crypter les transferts P2P
-Gestions des Langues (suport des skins ---> exit le hard coding des fenetres)
-Permettre le P2P sur un réseau local ?(choix d'ip dans l'option Plus ?)
Afficher les 19 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.