CLASS POUR TRANSFERER DES FICHIERS VIA WINSOCK AVEC CONTROLES PENDANT LE TRANSFE

tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 - 11 avril 2005 à 10:25
cs_stachys Messages postés 4 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 26 février 2010 - 19 févr. 2010 à 09:52
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/30665-class-pour-transferer-des-fichiers-via-winsock-avec-controles-pendant-le-transfert

cs_stachys Messages postés 4 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 26 février 2010
19 févr. 2010 à 09:52
Re-bonjour. J'ai repris le temps de faire mes tests correctement et il se trouve que ta classe correspond parfaitement à mes besoins !

Dommage que j'ai noté trop vite...Mais ta source mérite bien un 9/10. Merci à toi d'avoir prit le temps de faire ca.
cs_stachys Messages postés 4 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 26 février 2010
15 févr. 2010 à 17:26
Bonjour. Je débute dans l'utilisation des Winsocks et ta classe m'a intéressée. Cependant, j'aimerai comprendre l'intérêt de la ligne suivante dans la procédure d'envoi :

Tampon = Space$(LenTampon)

Dans tous les cas, ca m'a donné un coup de pouce pour faire un client FTP. Me restera le serveur.
theoutlaw1800 Messages postés 8 Date d'inscription samedi 23 décembre 2006 Statut Membre Dernière intervention 15 juin 2008
15 juin 2008 à 01:46
merciii
cs_miata Messages postés 86 Date d'inscription mardi 31 août 2004 Statut Membre Dernière intervention 19 août 2008
8 août 2007 à 14:51
Je ne sais pas accéder au site :| Erreur 404
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
8 août 2007 à 06:15
utilises la classe Winsock présente sur www.vbip.com, elle est bien plus efficace et sure que ce bon vieux controle Winsock.

voir aussi l'API TransmitFile qui s'appuie sur une connexion winsock dont on passe le handle
cs_miata Messages postés 86 Date d'inscription mardi 31 août 2004 Statut Membre Dernière intervention 19 août 2008
8 août 2007 à 00:08
Oko, pour ceux qui auraiement des problèmes identique ...
j'ai essayé avec plusieurs taille de tampon, ...
4096 et 2048, perte de donnée, mais à partir de 1024, plus aucun probleme !

Merci encore <celiphane> pour tes sources !!
cs_miata Messages postés 86 Date d'inscription mardi 31 août 2004 Statut Membre Dernière intervention 19 août 2008
7 août 2007 à 23:55
En mettant un tampon de 8 ca passe ... mais c'est tres lent :D
cs_miata Messages postés 86 Date d'inscription mardi 31 août 2004 Statut Membre Dernière intervention 19 août 2008
7 août 2007 à 23:33
Aille, j'ai un gros probleme ...

J'utilise ta classe pour faire des envoi en local.
Du pc à lui même pas de probleme.

D'un autre pc (réseau local) à mon pc, sur une image de 105 Ko, j'ai 21 Ko perdu et uen fois j'en ai même eu 3 de trop !! :|

Comment cela ce fait-il ?
J'ai utilisé un Winsock dédié au transfert et mon label qui donne la taille envoyé donne bien 105 ko.
cs_rocker Messages postés 23 Date d'inscription mardi 11 octobre 2005 Statut Membre Dernière intervention 21 décembre 2011
9 avril 2007 à 03:17
Exelente source, tres utile. Beau travail !

PS: Merci de te soucier des gens qui veulent apprendre :)
sharkus Messages postés 43 Date d'inscription mardi 16 juillet 2002 Statut Membre Dernière intervention 10 juillet 2012
14 févr. 2007 à 16:32
Bon en fait je raconte que des conneries, 1 seul winsock est nécessaire de chaque côté pour envoyer et recevoir des données ! Ta source est super bien faite. Petite question sur l'intégrité des données.
Pour contrôler que les données sont bien transmises, tu renvoi à l'expéditeur le 1er et dernier caractère de tampon mais avec ce moyen comment être certain que tous les caractères soit transmis ?
Ne faudrait-il pas envoyer la taille de ce que l'on envoi afin de vérifier lors de la réception que tout est bien là ?
ex : On veut envoyer la chaine suivante : "Coucou j'envoi un test"

wsk.SendData ".22#Coucou j'envoi un test"

lors de la réception on controle la taille:
Si longeur du texte reçu = 22 alors
envoi confirmation
ecrit dans le fichier
sinon
envoi errtransfert
fin

Qu'en pense tu ?
sharkus Messages postés 43 Date d'inscription mardi 16 juillet 2002 Statut Membre Dernière intervention 10 juillet 2012
13 févr. 2007 à 19:23
Bonsoir,
je viens de regarder un peut le fonctionnement, et dites moi si je me trompe, mais si je veux pouvoir envoyer et recevoir des fichiers sur les 2 PC pas uniquement recevoir de l'un et envoyer de l'autre, il faut bien que j'utilise 2 Winsock sur chaque appli (1 qui envoi et 1 qui reçoi) ?

Merci d'avance, je débute avec les winsock alors soyez indulgent ;)
sharkus Messages postés 43 Date d'inscription mardi 16 juillet 2002 Statut Membre Dernière intervention 10 juillet 2012
13 févr. 2007 à 18:21
Nickel cette source ;) C'est du bon travail, y'a plus qu'a bien comprendre le fonctionnement et à l'intégrer.
Merci beaucoup 10/10
sjmf Messages postés 1 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 1 mars 2006
1 mars 2006 à 01:33
Merci pour cette classe transfert.
Tu utilises, pour la gestion d'erreur,l'instruction "On Local Error GoTo ..". Je n'ai pas trouvé de documentation sur le mot réservé "Local" au sein de cette structure. Pourrais-tu m'en dire plus?
Encore merci pour ce superbe outil!
stomoxe1 Messages postés 1 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 30 octobre 2005
30 oct. 2005 à 13:43
Salut a tous j'ai testé ce code avec succes, entre 2 PC sur un même reseau et ça marche nickel.

Pour ceux qui n'aurait pas compris les modifs a faire:
Voila comment Faire les 2 executables pour que ça marche:

Sur le PCN°1(ip=192.168.1.100) celui qui emet le fichier on modifie comme ceci:
rem Winsock1.LocalPort = 10666
rem Winsock1.Listen
rem Winsock2.Connect "localhost", 10666
Winsock2.Connect "192.168.1.102", 10666 : rem <----- c'est l'ip du PC qui recevra le fichier
et on utilise que le bouton de droite (Command2) sans oublier de mettre enable=true pour pouvoir cliquer dessus

Sur le PCN°2(ip=192.168.1.102) celui qui recoie le fichier on modifie comme ceci:
Winsock1.LocalPort = 10666
Winsock1.Listen
rem Winsock2.Connect "localhost", 10666
rem Winsock2.Connect "192.168.1.101", 10666
et on utilise que le bouton gauche pour la reception.

donc maintenant on a nos 2 executables.
Sur le PC2 on lance l'exe
Sur le PC1 on lance l'exe et on voit que les 2 appli sont connectées.
Sur le PC2 on clique sur le bouton gauche...
Sur le PC1 on clique sur le bouton droit...

Et le fichier passe du PC1 au PC2...
N'oublier pas d'autoriser le port 10666 sur vos parfeu...

ça marche super. Felicitation pour cette source très clair
cs_Jouissance Messages postés 22 Date d'inscription vendredi 2 septembre 2005 Statut Membre Dernière intervention 28 novembre 2005
13 oct. 2005 à 10:30
très bon code, et surtout bravo. merci de te soucier des neuneu comme nous.
cs_clementpat Messages postés 406 Date d'inscription lundi 2 décembre 2002 Statut Membre Dernière intervention 25 janvier 2014
6 sept. 2005 à 09:42
je me suis servi de ce programme , "a distance" en recption et envoie de plusieurs pc differents (windows ME XP)groupe d'explotation idem ou different , je n'ai a ce jour , rencontré aucun probléme.
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
5 sept. 2005 à 23:34
Salut,

la class marche de partout, et vers partout. Ton problème me semble être, comme pour beaucoup qui m'ont contacté en privé, un souci de configuration de routage... il y a quelque part un NAT qui ne fais pas son boulot... parcequ'il n'est pas configuré... voilà l'indice.

Bon courage

@+
Celiphane
bastok Messages postés 3 Date d'inscription mardi 16 septembre 2003 Statut Membre Dernière intervention 13 septembre 2006
5 sept. 2005 à 21:25
Bonjour,

Comme vous avez l'air tous porté sur les fautes d'orthographe, je prefere prevenir, il y en aura...

Bref, En ce moment je cherche pas mal à transferer un fichier par winsock, d'une maniere ou d'une autre, cependant, à chaque fois j'ai un probleme, la taille du fichier n'est pas la meme à l'arrivée. Du moins à distance, parceque en local, comme avec ton exemple, alors là c'est le top, tout les fichiers sont entiers, sans soucis, parfait. mais des qu'il sagit de l'envoyer à quelqu'un via le net, là c'est plus pareil. Donc je me suis penché sur ta classe, mais là pareil, en local ca marche, jusque là rien de nouveau, mais en l'adaptant à un programme à distance, là c pire je recois rien. J'ai vraiment besoin d'aide, sinon je vais craquer, je tourne en rond, et j'arrive pas à savoir si c'est Winsock qui me rend fou ou vb.

Si tu as un indice, communique le moi. Merci
cs_clementpat Messages postés 406 Date d'inscription lundi 2 décembre 2002 Statut Membre Dernière intervention 25 janvier 2014
22 juil. 2005 à 14:10
Merci a toi pour ta reponse ,j'ai testé cette nuit de la façon que j'avais evoqué , et en effet la bande passante est divisée par le nombre de connection .là je vais faire un truc pour pouvoir reprendre un chargement apres deconnection ; pour ne pas devoir laisser le pc allumé sans arret, merci a toi pour ton attention .
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
22 juil. 2005 à 08:35
Très sincèrement, je ne pense pas.
En effet, étant en ADSL ton download est très rapide et tu crois donc ta connexion également très rapide, mais sache que ton upload lui, reste très faible. Et comme tu dis "j'envoie un film" cela signifie que tu es la seule source d'upload, donc le transfert sera lent et le restera quoi que tu fasses.

Lorsque tu envoies ton film, tout la bande passante upload de ta connexion est exploitée si rien d'autres ne l'utilise en même temps. Si tu mets 2 uploads à la tâche, ils occuperont chacun 50% de ta bande passante d'upload, 33% pour 3 uploads etc... bref le cumul ne dépassera jamais les 100% unique que représente la capacité de ton upload au général, et ça ira toujours à la même vitesse. La différence c'est que tu te seras compliqués la vie ;) !

Avec un client P2P, le transfert de fichier volumineux est plus rapide parcequ'il y a plusieurs sources à l'envoyer en même temps, donc on se retrouve par exemple avec un monsieur A qui donne 100% de son upload pour 50% du fichier et un monsieur B qui donne 100% de son upload pour les 50% restants du fichier. Comme le download de celui qui reçoit est assez conséquent pour supporter le débit total que représente l'upload de A et l'upload de B simultanément, on se retrouve dans ce cas précis avec un transfert à un régime de 200%, donc 2x plus rapide.
Les sources d'uploads se comptant par centaine sur le P2P, inutile de préciser que tu n'obtiendras jamais la même vitesse de transfert de client à client...

@+
Celiphane
cs_clementpat Messages postés 406 Date d'inscription lundi 2 décembre 2002 Statut Membre Dernière intervention 25 janvier 2014
22 juil. 2005 à 00:16
Re ,une question je suis en adsl
j'envoie un film d'un pc a un autre (adsl aussi)
700 Mo environ , il me faut 8 H
d'apres vous ,pour augmenter la vitesse ne faudrait il pas utiliser plusieur Winsock en meme temps :
ex 4 winsock fonctionnant en meme temps
le 1er envoie 25% , le 2em 25% , le 3em 25% et le 4em le reste
ensuite je concatenise le tout .
d'apres vous , cela va augmenter la vitesse d'envoie et reception ?
Rama853 Messages postés 1 Date d'inscription vendredi 29 août 2003 Statut Membre Dernière intervention 25 juin 2005
25 juin 2005 à 17:43
superbe source, exactement ce qu'il me fallait ;)
Félicitations !!
cs_clementpat Messages postés 406 Date d'inscription lundi 2 décembre 2002 Statut Membre Dernière intervention 25 janvier 2014
21 mai 2005 à 13:14
TRES clair , bien realisé , facile a comprendre , que vouloir de plus 10 10 a+++++
leocat Messages postés 7 Date d'inscription dimanche 8 juin 2003 Statut Membre Dernière intervention 21 novembre 2005
18 avril 2005 à 14:28
super source! merci de t'interesser aux débutants et de prendre du temps a nous expliquer :) :)
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
15 avril 2005 à 10:04
Aucune note ?
Je suis un peu déçu, moi qui pensais depuis tellement longtemps posté ce type de source pour enfin sortir du brouillard tous ceux qui ne savent pas comment vraiment faire un transfert niquel propre...

Pour une fois que j'en prends le temps (bon ok, ça a pas été si long à faire, mais faut se les réserver les 2 heures, surtout quand c'est juste pour faire plaisir à une communauté ;) ), ben j'ai que des retours erronés sans approfondissement... ni note ! bouuuuuu snif ouinnn.

:o)

Bon allez, juste pour ce type de commentaire réclamatif (ça existe pas ce mot ?), y'en a qui vont me mettre des sales notes... j'aurais dû me taire ;-)

Bon prog à tous !
@+
Celiphane
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
12 avril 2005 à 01:40
Resalut Jack !

(désolé, tu viens à peine de finir mon roman que je te remets un autre message lol, qu'est ce que je suis méchant... :o) )

Nan, c'est pas grand chose, c'est juste que je viens de relire ton commentaire et un passage m'avais échappé, tu dis :

<>

J'ai mal interprêté plus haut cette partie de ton commentaire et donc du coup, ma justification n'est pas complète, et je m'en excuse.

Donc, pour répondre parfaitement à cet injonction, sache qu'une (petite) fois de plus, tu as mal regardé !

J'impose bien entendu la taille de la trame pendant le transfert (faut bien envoyé quelque chose... cela dit en passant j'impose pas vraiment la valeur, c'est le développeur qui la passe en paramètre... enfin, là n'est pas le problème), mais à chaque "découpage" (on va appeler ça comme ça), tu aurais pu (dû ?) constater qu'un test s'assure du nombre restant d'octets à transférer.

Ainsi, lorsqu'arrive la trame de fin, plus petite que toutes les autres, le tampon est redimensionné à cet effet.

Tu peux constater que je n'ai pas fait de mise à jour de la source hein ! C'est bien des détails qui t'ont échappé ;-)

Bon allez, une fois de plus, je vais quand même m'assassiner : je commente vraiment pas grand chose... l'indentation parfaite ne fait pas... allez : je plaide coupable en partie !

Si en revanche tu as de vraies optimisations à me faire part, je suis preneur ! Dans l'espoir d'avoir ta contribution, merci quand même une fois de plus pour tes remarques qui m'ont permis d'expliquer au grand jour certaines parties non commentées de cette class.

@+
Celiphane, votre dévoué !
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
11 avril 2005 à 21:26
héhé, j'aime ce genre de commentaire...

salut jack !

Alors allons-y :

- désolé pour les fautes d'orthographe, c'est pourtant un point auquel j'attache une importance (pas capitale, mais correcte). Je vais quand même avoir le culot de te demander de préciser ce que tu m'annonces, car je ne vois pas de fautes dans "envoi" ni dans "transférer", puisque, pour ta gouverne, cela prend bien un accent aigu. De toute façon, je n'utilise pas d'accent dans le code pur. Maintenant si tu parlais du texte explicatif de la source ci-dessus (ou bien des commentaires), alors soit... peut-être... je ne relirais pas pour si peu. La source en elle même me semble juste. (dis moi sinon, je me ferai une joie de corriger ! merci d'avance)

- Ton histoire de données déjà dans le tampon, je vois que tu t'y connais plus en orthographe qu'en algorithmie ;)
Nan je plaisante, mais avant de dire, essaye donc la source, c'est fait pour et c'est parfaitement géré : cette alternative permet de n'inscrire les données dans le fichier QUE si le contrôle s'est avéré accepté par la partie "envoi", après réception, une sorte de :
A - je te fais parvenir ceci
B - je l'ai bien reçu, voici la preuve que j'en apporte
A - cette preuve est correct, inscrit et voici la suite tant qu'on y est
- ou -
A - cette preuve est fausse, n'inscrit rien, revoici le bloc
- puis ça reprend à -
B - je l'ai bien reçu, voici la preuve que j'en apporte
etc... etc...

- en ce qui concerne l'histoire du binary, là je vais me fâcher, parceque je trouve vraiment incorrect en fait toutes ces critiques sans test préalable : tu aurais dû voir que le "PRINT" sert avec la partie qui reçoit, et que celle ci ouvre le fichier en "OUTPUT". La partie qui envoit, elle, ouvre en "BINARY", et récupère avec "GET"... c'est navrant ce lot de commentaires désobligeant sans compréhension, décidément... mais vous en faites pas, je reste OK envers vous les gars ;)
Sur ce site, c'est le lot de tous de toute façon (toi même tu dois avoir ces cas sur tes propres sources ;) )

- Pour ta demande de savoir si le fichier transmis est bien de la bonne taille... tu me prends pour qui ? un débutant ? Tu penses aussi que j'aurais posté une source qui ne fonctionnerait pas ? Tu ne me connais pas ;)
Bien entendu que cela fonctionne ! hého ;)
Tout ce que tu vois comme étant de possibles erreurs sont en fait, désolé (c'est vrai, vraiment désolé) des choses que tu n'as pas compris, des subtilités qui dépassent ta manière d'observer cette source (du moins dans le survol que tu en as fait)... des fonctions que tu n'as pas correctement interprêtée (le check à la réception par exemple).

- Ma structure de class est bonne oui, et je ne créé que des class, pas de contrôle utilisateur. En revanche, libre à toi de le faire. Ha oui, tes tournures ne sont pas bien choisies : ce n'est pas "peu audacieux" (lol), c'est de l'objet, je ne fais qu'utiliser un pointeur, c'est tout à fait hors d'atteinte d'une qualification qu'on devine dans ton commentaire : de la bidouille ;)
Sache également que le fait de faire un winsock que l'on réclamme à l'utilisateur, tout cela est entièrement voulu : en effet, tu constateras que je ne gère pas la partie connexion dans la class. Ce n'est qu'une class de transfert de fichier, pas un "super-winsock". L'utilisateur (développeur) peut ainsi utiliser la class avec plus de souplesse et de flexibilité qu'un CU. Il utilise le winsock de son choix, le connecte comme il le souhaite, puis le dédie au transfert de fichier lorsqu'il en a envie, pour enfin récupérer son winsock lorsque les évènements lui annoncent la fin du transfert ou bien lorsqu'il le souhaite en appelant la méthode AnnulerAction... mais tester.... tester !!!! :o)
J'oriente tout mes travaux professionnels dans la souplesse et la flexibilité... J'essaye de faire des codes utilisables, et non pas à adapter.

En tout cas, merci pour toutes ces remarques, je reste à ta disposition pour des éclaircissements ou bien des conseils.

@+
Celiphane
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
11 avril 2005 à 19:14
Salut
J'ai un peu regardé ta source sans faire d'essai.
Quelques remarques (contructives, rassure toi) :
- Quelques fautes d'orthographe à corriger (envoi, verbe transfèrer ...)
- Dans le Wck_DataArrival, tu écris dans ton fichier le contenu de Tampon. Or, cette donnée est connue depuis la derniere réception : Quand tu reçois les octets du fichier, tu te retrouves avec des données dans Tampon .... mais il n'y aura plus d'évènement Wck_DataArrival ... alors les dernières données, pas sûr qu'elles soient enregistrées -- à vérifier
- Quand on utilise l'ouverture de fichier "For Binary", la commandes "Put" est plus adaptée que "Print"
- A vérifier aussi : Tu imposes la longueur de la String de réception "Tampon". Lors de l'écriture de la dernière trame d'octets, est-ce que la fin de fichier est correcte ? Est-ce que le fichier reçu a exactement la même taille que le fichier émis ?
- Ta structure de classe est bonne, mais l'utilisation d'un objet WinSock indirectement est un peu audacieuse. Essaye de transformer ta classe en "Controle Utilisateur" (CU) : dedans, tu colles ton code, et dans la forme du CU, tu mets un Winsock qui appartiendra à ton instance (et pas au projet qui l'appelle)
Neo.balastik Messages postés 796 Date d'inscription jeudi 17 mai 2001 Statut Membre Dernière intervention 5 mai 2009 7
11 avril 2005 à 16:09
Bravo ! Source claire et concise.
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
11 avril 2005 à 16:06
hmmm *-) lol Oui j'étais un peu à l'ouest, mais pas agressif du tout. C'est juste que j'ai commencé winsock ya pas très longtemps et qu'en faisant une appli sur la mm machine tout marche à merveille et dès que je fais tourner la mm appli entre 2 machines distantes ça plante de partout! Donc, j'aurais nettement préféré une source avec 2 applis qui utilisent cette classe. Mais bon, jvais me la faire c pas grave.
Merci Celophane
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
11 avril 2005 à 15:45
Pis y'a pas de client/serveur, y'a 2 applis qui communiquent via la couche tcp/ip, un point c'est tout.

Après le choix de séparer, c'est un choix de faire une appli qui ne fait qu'une certaine fonctionnalité, et une autre qui fait une autre fonction, le tout en complémentarité l'une de l'autre.

Ca n'a rien à voir avec cette class, rien à voir avec les applis réseau en elle même, mais je retombe la dessus par principe, histoire de te faire comprendre cela, avant que ces messages ne soient effacés, par pédagogie :)

Voilà :)

@+
Celiphane
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
11 avril 2005 à 15:27
<<Maintenant, j'aimerais savoir dans quelle autre situation ta classe est utile, quelle est l'utilité de se passer un fichier à soi même>>

lol, je recite ça juste pour t'expliquer pourquoi je vais faire le nécessaire pour faire enlever les premiers commentaires que nous avons rédigé d'ici quelques jours (celui ci compris)...
Tu comprends, tu es à l'ouest là... la class n'envoie pas un fichier à soi-même, elle gère l'envoie et la réception de fichier, de n'importe qui à n'importe qui... tu as vraiment trop mal interprêté le code source, et les commentaires préjudiciable au contenu d'une source sont malvenus, surtout pour l'auteur de la source ! C'est pas cool :(

;)

T'en fais pas je t'en veux pas du tout, je suis même tout à fait disposé à te filer des coups de main lorsque tu auras des problèmes avec winsock... :-)

@+
Celiphane
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
11 avril 2005 à 15:18
olala, t'es un parleur toi ;)

je vais préciser ma pensé, et gentiment, parce que tu m'as tout l'air bien agressif non ?? :)

Tu penses trop au niveau utilisation de l'appli... en fait, je comprends pas vraiment comment tu raisonnes ? Tu développes ? A ce que je sache, quand tu fais par exemple une appli que tu vas distribuer, qui sert par exemple QUE à transférer des fichiers, c'est le freeware que les gens vont télécharger pour s'échanger des fichiers. Bon. Ba cette appli doit savoir envoyer ET recevoir des fichiers, par un protocole qu'elle reconnait... c'est ce que cette class fait. Elle t'aide en cela qu'elle est la solution clé en main pour transférer les fichiers. Tu comprends ?

<<qu'elle est l'intéret de se passer un fichier à soi même?!>>
...mais quel est le rapport ?? ;)
Elle sert pas à se passer un fichier à soi même ptdr.
C'est parceque l'exemple fait ça ? Tu comprends pas que c'est un exemple ? :o)
Bon je suis coupable, j'aurais dû penser avant de poser la source à faire un vrai contexte pour que les débutants comme toi comprennent que ça sert pas à s'envoyer un fichier à soi-même ;)

En fait, tu prends le source comme une appli, alors que ça n'en ai pas une. Cette source, tbbuim1, c'est la class, que tu peux utiliser où tu veux. C'est un objet, le fichier class. Le projet fourni est un exemple pour montrer comment elle s'utilise. (faites des efforts tiens, vous serez récompensé ;-) ).

C'est mon exemple d'utlisation de class... comment t'expliquer... imagine alors une appli dans laquelle en plus de dire quel fichier envoyer, on donne aussi l'adresse IP à laquelle se connecter... Tiens ba si tu veux, fait un inputbox sur le connect du winsock, et lance 2 fois l'appli, une sur un pc, une autre instance sur un autre... tu vois, ca transfert d'un pc à l'autre lol ;)

heu... je vois pas quoi dire d'autre à part que tu t'embrouilles surement un petit peu :)
Ya pas de mal ;)

Tu veux que je fasse un contexte réel et non pas simplement une démonstration de fonctionnalité, pour que tu vois mieux ? Demande moi, je suis tout disposé à t'aider !

@+
Celiphane

PS: pour le doevents, je l'utilise juste pour permettre au label qui affiche la progression en octets de se rafraichir et donc d'afficher leurs valeurs AVANT que les msgbox n'apparaissant (car elles sont modals). Ca N'A RIEN A VOIR avec la class, RIEN A VOIR AVEC LE SYSTEME DE TRANSFERT, une fois de plus, c'est JUSTE DANS la feuille qui montre par l'exemple COMMENT utiliser la class... apparament tu n'as pas compris cette source... je pourrais t'expliquer tout ca en détail mais en PV si tu le souhaites ! J'aime bien aider les autres ! J'avoue que les prog de communication en réseaux, c'est un domaine que j'adore expliquer à ceux qui y débute :)
Message-moi !
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
11 avril 2005 à 15:00
Oui, je parle EVIDEMMENT d'un zip dans le 1er tuto. Même s'il est vrai qu'ya plein de mini exemples...
Ensuite la séparation client/serveur est peut être inutile à tes yeux, en ce qui concerne les miens, je ne vois pas l'utilité de le garder sur une mm appli. qu'elle est l'intéret de se passer un fichier à soi même?! Ceux qui veulent faire des transferts de fichiers, sont, à mon humble avis, des gens qui se connecte à un ordi distant. D'où la constante séparation que tu vois d'habitude... C'est pour ça que je parlais de séparer celui qui envoi de celui qui reçoit... Maintenant, j'aimerais savoir dans quelle autre situation ta classe est utile, quelle est l'utilité de se passer un fichier à soi même, s'il est si inutile de faire une séparation? ça m'intéresse, puisqu'apparemment ça coule de source pour toi, donc éclaires-moi stp
D'autre part, tu parles du "bête DoEvents", pourtant tu en fais usage dans ton code... Il aurait été bien de justifier cette emploi par un commentaire, du coup, on ne voit pas trop pourquoi t'en a mis un, encore une fois c'est juste pour une meilleure compréhension. Ca n'enlève en rien la qualité du travail.
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
11 avril 2005 à 13:14
Salut,

le tuto manque d'exemple ? Tu veux surement parler d'archive zip avec une illustration, parce que le tuto est justement entrecoupé d'exemples ;)
D'ailleurs, nombre sont ceux qui en le suivant à la lettre ont compris le winsock... ;) Débutants principalement :)

Cette source ne se veut pas être un exemple à lier avec mon tuto. C'est une class qui montre la bonne méthode pour transférer des fichiers sur des réseaux. Aussi, je ne comprends pas ce que les gens ont à vouloir absolument séparer les fonctionnalités client et serveur : déjà, ici, il n'y a PAS de client ni de serveur ! C'est une class pour transférer des fichiers, elle représente un tout, un protocole qui lui est propre pour d'une part envoyer et d'autre part recevoir. Bon passons. La question ne se pose donc même pas ici.
La vraie question est de savoir pourquoi les applications posées ici en exemple du winsock contiennent toujours 2 projets : le client et le serveur... mais c'est d'un inutile. Seules certaines applications nécessitent cette séparation, par exemple des logiciels de prise de main à distance, ou il n'est intéressant d'installer que la partie serveur chez le "client" (au sens clientèle), car il ne doit pas pouvoir utiliser le client (de l'application ;) ). Les autres séparations sont facilités (mauvaise structure de l'appli, complications fuies par le développeur).

Bon c'est mon avis, ma réaction à ton commentaire, qui quoi qu'il en soit, j'ai eu beaucoup de plaisir à lire. Je te remercie d'avoir testé et commenté ma source.
A bientôt sur nos futurs contributions ;)

@+
Celiphane
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
11 avril 2005 à 10:25
Pas mal, ton premier tuto, mais il manque cruellement d'exemple pour les débutants, même si c'est relativement bien expliqué. Celui là a un exemple, cool, mais dommage qu'il ne soit pas en deux parties, client/serveur, encore une fois, ça aurait été mieux pour les débutants. Mais sinon, c'est cool. C'est vrai qu'en regardant les autres sources, je me demandais pourquoi ils n'arrivaient pas à transférer de gros fichiers. lol
Rejoignez-nous