Question

Quelqu'un peut-il m'indiquer un didacticiel sur la meilleure façon d'ouvrir une connexion client-serveur, de lire un fichier binaire et d'envoyer son contenu de manière fiable via la connexion réseau? Mieux encore, existe-t-il une bibliothèque open source qui fait déjà ce que je pourrais faire référence?

Était-ce utile?

La solution

Vous devriez examiner la sérialisation binaire et l'envoyer via un socket TCP.

Bonne explication sur les différents types de sérialisation:

http://www.dotnetspider.com/resources /408-XML-serialization-Binary-serialization.aspx

Bonne introduction au client / serveur TCP en C #:

http://www.codeproject.com/KB/IP/tcpclientserver.aspx

Autres conseils

Cela dépend de ce que vous entendez par réseau - si vous copiez sur un réseau local, vous pouvez simplement utiliser les opérations de copie de fichier dans System.IO. Si vous souhaitez envoyer des messages à des serveurs distants, utilisez des services Web. Je compresse les tableaux d'octets et les envoie et les décompresse du côté distant. Le tableau d'octets est très facile à écrire sur le disque en utilisant des flux.

Je sais que certaines personnes préfèrent les chaînes de base 64 au lieu de l'octet []. Je ne sais pas si c'est important.

Pourquoi utiliser HTTP ou FTP? Ils étaient en quelque sorte faits pour cela.

Alex

Selon l'endroit où vous envoyez le fichier, consultez WebClient.UploadFileAsync et WebClient.UploadFile .

Je n'utiliserais ni HTTP ni FTP, pour un seul fichier, cela représente une charge supplémentaire et trop difficile à coder, en particulier si vous disposiez déjà d'un simple serveur TCP presque en C #.

Les sockets peuvent constituer le meilleur itinéraire si vous devez simplement le faire via le réseau. Si vous utilisez TCP, vous bénéficiez de la fiabilité de la communication mais avez un impact sur la vitesse. Si vous avez besoin de meilleures performances, essayez plutôt d’utiliser UDP. Mais le problème avec UDP est que la livraison et la commande de paquets ne sont pas garanties. Vous devrez donc écrire vous-même toute cette tuyauterie.

Si vous devez transférer des fichiers sur le Web lui-même (par programme et si vous ne pouvez pas utiliser FTP), utilisez une approche de service Web via MTOM pourrait répondre à vos besoins.

Si vous utilisez Windows Server 2003 R2, Windows Vista ou Windows Server 2008 et effectuez des transferts réseau internes, vous pouvez également utiliser le nouveau Compression différentielle à distance . Cela permet non seulement de compresser un fichier afin de minimiser le trafic réseau, mais est également utilisé directement par la réplication DFS. Inconvénient (en tant que développeur .NET), c’est une technologie COM +.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top