begin process at 2008 07 06 18:47:55
1 205 717 membres
280 nouveaux aujourd'hui
14 119 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

TRANSFERT DE FICHIERS ENTRE 2 PC DISTANTS


Information sur la source

Catégorie :Réseau & Internet Source .NET ( DotNet ) Classé sous : fichier, socket, transfert, internet, tcp Niveau : Initié Date de création : 11/05/2008 Date de mise à jour : 12/05/2008 10:08:07 Vu / téléchargé: 6 276 / 579

Note :
5 / 10 - par 1 personne
5,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note


Description

Bonjour,

Cette source permet, pour commencer en quelques mots, d'échanger des fichiers à travers un réseau ou internet en Tcp.

Elle se compose d'une application serveur très rudimentaire et d'un client plus fignolé graphiquement..

Le fonctionnement est très simple.


************************************
Au préalable le serveur se trouve sur un pc (pc n°1), et le client sur un autre (pc n°2), les deux pc ayant le Framework ;).
(Vous pouvez tester en local si ça vous chante..)

L'utilisateur du pc n°1 lance l'application serveur, choisi un port, et appuie sur le bouton E (écoute).
L'application devient couleur orange si réussite, elle attend un client.

L'utilisateur du pc n°2 lance le client, tape l'adresse IP du pc n°1, rentre le même port, et appuie sur C (connexion).
Si tout se passe bien, le texte devient vert et la couleur de la form de l'application serveur verte aussi.

Vous avez maintenant créé un canal.

L'utilisateur du pc n°1 n'a plus qu'a choisir un fichier.

Le transfert débute.

Si le fichier existe sur le pc n°2, alors une boite de dialogue permet de choisir l'action a effectuer entre reprendre, annuler ou écraser..

A la fin du transfert, l'utilisateur du pc n°1 peut renvoyer un fichier directement..
*************************************

Côté code, plutôt simple à comprendre et minimaliste. La gestion d'erreur n'est pas optimisée mais présente. Bien commenté. Repose sur l'utilisation des sockets en Tcp.


Nb : Bien vérifier que les ports choisis sont ouverts (routeurs, passerelles...)
Nb2 : Vous n'avez pas à retaper la même ip et port à chaque fois, ceux-ci sont sauvés à chaque modification..
Nb3 : Vous pouvez envoyer plusieurs fichiers en même temps, en relançant à chaque fois le client et le serveur avec des ports différents.
Nb4 : Vitesse limité selon votre connexion en émission et en réception. Ex je suis limité à 128ko/sec en upload, donc mon client recevra à cette vitesse. Je ne peut recevoir qu'à 1Mo/s, si le serveur peut envoyer plus (3Mo/sec par ex) je recevrai quand même à ma vitesse limite de download, soit 1Mo/sec.

Nb5 : Je n'ai pas utilisé les fonctions BeginSend et BeginReceive pour la simple raison qu'on n'a aucun contrôle de ce qui se passe derrière. Conseil, créez votre propre fonction asynchrone. C'est ce que j'ai fait suite à une erreur de Buffer saturé de la fonction, c'est un gouffre à octets, peu recommandé pour le transfert de fichiers. L'erreur provenait du fait que je lisais plus vite le fichier que je ne l'envoyais, donc on stocke, on stocke et ... error.. Il a donc fallu trouver une alternative (voir le code).

Optimisations à apporter, si ça vous fait plaisir..
-La gestion d'erreurs améliorée
-Compression à l'envoi (augmentation du débit, augmentation de la charge de travail par le processeur)
-Envois simultanés sur la même application
-Possibilité de choisir le fichier à partir du client

Source

  • Voir Zip, 2 projets, un serveur, un client
Voir Zip, 2 projets, un serveur, un client
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

11 mai 2008 23:00:29 :
Description.
11 mai 2008 23:13:30 :
Ajout de Nb5
11 mai 2008 23:17:38 :
Une faute d'orthographe trouvé ^^
12 mai 2008 09:47:53 :
...
12 mai 2008 09:54:59 :
Une autre faute d'orthographe
12 mai 2008 10:08:07 :
**Si le nom du fichier est trop long à afficher le tronquer (seulement pout l'affichage).. **Moyenne du temps effectuée sur 5s au lieu de 4s
  • signaler à un administrateur
    Commentaire de Valentino le 26/05/2008 12:19:47 5/10

    Bonjour Yves,
    Sympa mais peu d'interet pour une exploitation hors LAN... un utilisateur lambda ne s'aura pas faire du NAT sur son routeur (coté serveur).
    Se genre d'outil est plus exploitable sous forme de page web upload/download.

  • signaler à un administrateur
    Commentaire de yvesyves le 27/05/2008 20:42:52

    Wé tu n'as pas tort, moi je sais faire ça que en Vb^^

  • signaler à un administrateur
    Commentaire de Valentino le 28/05/2008 09:28:53

    Sinon l'autre solution c'est que tu diffuse uniquemement le prog client et tu installe le programme serveur chez toi avec une gestion des ports un peu plus poussé (remote)... et voila un beau p'tit trojen ^_^

    Bonne continuation Yves ;o)

  • signaler à un administrateur
    Commentaire de yvesyves le 28/05/2008 13:59:26

    Merci

Ajouter un commentaire

Discussions en rapport avec ce code source

Pub



Appels d'offres

WEB DESIGN
Budget : 1 000€
Plugin Dialer outlook
Budget : 2 000€
Travail graphique- ill...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS