[WIN32][VC++6] FILESENDER

xterminhate Messages postés 371 Date d'inscription dimanche 4 janvier 2004 Statut Membre Dernière intervention 23 septembre 2009 - 26 sept. 2005 à 08:54
dyroj Messages postés 123 Date d'inscription vendredi 14 novembre 2008 Statut Membre Dernière intervention 18 juin 2012 - 25 janv. 2009 à 22:22
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/33958-win32-vc-6-filesender

dyroj Messages postés 123 Date d'inscription vendredi 14 novembre 2008 Statut Membre Dernière intervention 18 juin 2012
25 janv. 2009 à 22:22
salut,
je voulais savoir si tu a utiliser laide graphique winapi pour t boite de dialog.
++
MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008
29 avril 2007 à 11:26
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 ...
tularis Messages postés 21 Date d'inscription mardi 8 mars 2005 Statut Membre Dernière intervention 12 juillet 2009
15 avril 2007 à 19:22
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 :)
MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008
14 mai 2006 à 00:37
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
MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008
5 mai 2006 à 16:32
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 ?)
cs_satellite34 Messages postés 688 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 2 juin 2006 1
13 mars 2006 à 17:36
ben alors cette mise a jour?
gouttonio Messages postés 9 Date d'inscription samedi 11 décembre 2004 Statut Membre Dernière intervention 18 février 2006
18 févr. 2006 à 00:38
awwww...
Ma qué c'est très utile !
Je voulais faire un truc du genre quand j'aurai le niveau...
Même pas besoin du coup ! Bravo et merci.
cs_louis78 Messages postés 12 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 4 février 2006
9 févr. 2006 à 10:50
clap clap clap !!!!
MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008
8 oct. 2005 à 11:56
Voila Maj, j'attends vos reactions, la pae d'aide est accessible depuis le programme, si vous l'utilisez, alors il faudrait faire edition --> Mettre a jour comme ça vous serez a jour
MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008
28 sept. 2005 à 23:51
Bug indentifié avec firefox, celui ci ouvre 4 onglets lorsqu'on ouvre un lien P2P depuis msn.
En fait il voit les | et se dit, cool, un onglet ! et hop j'en fais un ...
MAJ prévue pour demain ou apres demain, vous etes au courant au moins, pour IE pas de probleme, ya la page de navigateur inconnus (j'arive pas a detecter si c'est IE (c'est pourtant simple), je n'arrive que sur firefox ou mozilla).
MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008
27 sept. 2005 à 20:08
Deathcrash: je n'ai pas de base de donnée, en fait, je voulais qu'il n'y ait pas de faille de sécurité possible, que le transfert se fasse avec l'accord des 2 peers, d'eviter de monopoliser le port 12660 pour ecouter la connexion et puis tout simplement de lancer le programme au démarrage.
En résumé, le serveur choisit le fichier à envoyer le Filesender se met en écoute et des que le client se connecte il commence le transfert du fichier. Pour se connecter le client a besoin du lien que l'on passe par msn.

Ce que tu penses etre l'ID est en fait la taille en octets du fichier (fais gagner en taille de la source et en complexité). Si je n'ai pas séparé les variables c'est que tout simplement ça ne sert a rien, la page php redirige vers un lien de la forme FileSender://91.22.270.349|94208|FileSender.exe|. Firefox comprend qu'il doit lancer le filesender avec comme ligne de commande ce que j'avais appelé $link, c'est donc le filesender qui se charge de parser les variables.

J'espere avoir été clair, @ demain
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
27 sept. 2005 à 10:59
En gros ton option P2P tu recense le fichier dans une base de données.
Les client doivent alors connaitre le lien stockés dans la base de données, puis a partir de ton programme font un GET en passant le lien en paramètres.

Est ce bien ca ?

Si c'est le cas a quoi sert donc le lien ? N'est-il pas plus simple de passer directement l'IP ainsi que le nom du fichier paratager?

Sinon "FileSender.php?link=91.22.270.349|94208|FileSender.exe|", ya quand meme mieux et plus propre a faire en php. Utilise directement des variables genre :

FileSender.php?link=91.22.270.349&id=94208&filename=FileSender.exe
MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008
26 sept. 2005 à 21:02
ça peux oui, surtout pour le 2eme type de lien que la si j'avais pas eu l'idée de copier celui de emule (j'ai quand meme été avertis vis le forum que c'étais MIME, investigation, je me dit pu***n de merde ça doit etre dans le registre et je tombe sur ed2k donc bingo ...)

Voila, MuPuF pour vous servir
cs_poppyto Messages postés 540 Date d'inscription dimanche 29 décembre 2002 Statut Modérateur Dernière intervention 13 mai 2011
26 sept. 2005 à 20:29
Merki MuPuF :-), c'est aps que ça soit difficile, mais c'est le genre de trucs qui te prend des journées à mettre en place :-P
MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008
26 sept. 2005 à 19:59
XTERMINHATE : j'y pense, je vous fait ça mercredi entre 2 révisions de controle (ou mardi)

Poppyto : Je sais pas trop comment t'expliquer, en fait j'ai cherché sur le net et je suis tomber sur un .reg qui ajouter un bouton dans le shell, j'ai regardé, j'ai tenté de modifier, tout marchais nickel, je te passe le code de l'intégration dans explorer :

//Ajout d'un bouton dans le shell
RegCreateKeyEx(HKEY_CLASSES_ROOT, TEXT("*\\shell\\NomDuBouton\\command\"), 0, NULL, 0, 0, NULL, &hkey, &dwDisposition);
RegOpenKeyEx(HKEY_CLASSES_ROOT,TEXT("*\\shell\\NomDuBouton\\command\"),0,KEY_ALL_ACCESS,&hkey);
RegSetValueEx(hkey, "", NULL, REG_SZ, (PBYTE)""AdresseDeMonProg" "%1"", sizeof(Clee));
RegCloseKey(hkey);

//Cléé pour ajouter la sorte de "protocole" Filesender
RegCreateKeyEx(HKEY_CLASSES_ROOT, TEXT("FileSender\"), 0, NULL, 0, 0, NULL, &hkey, &dwDisposition);
RegOpenKeyEx(HKEY_CLASSES_ROOT,TEXT("FileSender\"),0,KEY_ALL_ACCESS,&hkey);
//Clée Defaut root
RegSetValueEx(hkey, "", NULL, REG_SZ, (PBYTE)"URL: FileSender Protocol", sizeof("URL: FileSender Protocol"));
//Cléé URL Protocol
RegSetValueEx(hkey, "URL Protocol", NULL, REG_SZ, (PBYTE)"", 0);
RegCloseKey(hkey);

//Cléé icon par defaut (jamais vus d'icone nulle part moi mais bon ...)
RegCreateKeyEx(HKEY_CLASSES_ROOT, TEXT("FileSender\\DefaultIcon\"), 0, NULL, 0, 0, NULL, &hkey, &dwDisposition);
RegOpenKeyEx(HKEY_CLASSES_ROOT,TEXT("FileSender\\DefaultIcon\"),0,KEY_ALL_ACCESS,&hkey);
RegSetValueEx(hkey, "", NULL, REG_SZ, (PBYTE)GetExePath(CommandLine), strlen(GetExePath(CommandLine)));
RegCloseKey(hkey);

//Pareil que pour l'intégration classique dans le shell
RegCreateKeyEx(HKEY_CLASSES_ROOT, TEXT("FileSender\\shell\\open\\command\"), 0, NULL, 0, 0, NULL, &hkey, &dwDisposition);
RegOpenKeyEx(HKEY_CLASSES_ROOT,TEXT("FileSender\\shell\\open\\command\"),0,KEY_ALL_ACCESS,&hkey);
RegSetValueEx(hkey, "", NULL, REG_SZ, (PBYTE)&""AdresseDeMonProg" "%1"", sizeof(Clee));
RegCloseKey(hkey);

Pour le 2eme type de lien j'ai en fait copier celui de emule et j'ai tout remis pour mon prog, ça marche chez tout le monde :D. Je ne retrouve malheuresement pas le site qui m'a permis de faire marcher l'intégration, je suis désolé ...
Si tu comprends pas PV ou mon adresse MSN child_of_k0rn@hotmail.com, si vous aussi vous voulez venir venez, je voudrais creer une communautée msn de programmeurs (au plus grands désespoir de m a copine ...)

Satellite34 : tout d'abord mercis, j'utilise le protocole FTP pour l'envois sur les serveurs ftp.
Du Tcp/ip pour l'envois P2P et une copie normale pour le serveur local.
Ashboody m'avait demandé si j'envisageais un portage, je veux bien mais je connais pas du tout les widgets ou meme how linux work (mais je sais l'utiliser quand meme mdr). Donc si certain sont intéréssés je suis la je veux bien vous aider a comprendre le programme (si vous ne comprenez pas malgres le nombre incroyable de commentaire et que tout soit séparé en fonctions claires et threads pour les envois/receptions ...)

Merci a tous, et bon transfert !
Zootella Messages postés 252 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 5 septembre 2006
26 sept. 2005 à 19:40
poppyto > Ici il n'utilise pas de serveur com, juste le registre.

Sinon, il faut créer une classe qui implémente les interfaces

IShellExtInit et IContextMenu.
cs_satellite34 Messages postés 688 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 2 juin 2006 1
26 sept. 2005 à 13:42
trés bien, je trouve ca d' une utilité exemplaire;

Quels protocoles sont utilisés par ton soft stp???
1 peu dommage que ce soit du windows mais bon, c' est la vie....

8/10;
C'est vraiment pas mal du tout;

@+;
ROOT_DIEU;
cs_poppyto Messages postés 540 Date d'inscription dimanche 29 décembre 2002 Statut Modérateur Dernière intervention 13 mai 2011
26 sept. 2005 à 10:13
Pourrais-tu décrire brièvement l'intéraction avec le Shell (comment associer le clic droit dans la base de registre, les interfaces à implémenter). Ton soft à l'air intéressant en tout cas :).

Stef
xterminhate Messages postés 371 Date d'inscription dimanche 4 janvier 2004 Statut Membre Dernière intervention 23 septembre 2009
26 sept. 2005 à 08:54
Ton application est intéressante. Tu devrais mieux décrire le mode opératoire pour réaliser les transferts : par exemple faire un court tuto détaillé sur l'utilisation du logiciel.
Rejoignez-nous