Quelqu'un peut-il me diriger vers un tutoriel sur la meilleure façon d'ouvrir une connexion de client à serveur, lire dans un fichier binaire et envoyer son contenu de manière fiable à travers la connexion réseau? Encore mieux, y a-t-il une bibliothèque open source qui fait déjà cela à laquelle je pourrais me référer?Quelle est la meilleure façon d'envoyer un fichier sur un réseau en utilisant C#?
Répondre
Vous devriez regarder dans la sérialisation binaire et l'envoyer sur 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 sur TCP Client/Serveur en C#:
Vous pouvez créer un client et un serveur TCP et envoyer des messages via TCP. C'est assez trivial en C#.
ici est par exemple d'un serveur TCP simple:
http://www.goldb.org/goldblog/2007/07/27/CSimpleTCPServer.aspx
Comment l'utilisation de HTTP ou FTP? Ils étaient en quelque sorte faits pour ça.
Alex
Selon l'endroit où vous envoyez le fichier, vous pouvez jeter un oeil à WebClient.UploadFileAsync et WebClient.UploadFile.
Je n'utiliserais pas HTTP ou FTP, pour un seul fichier c'est trop de surcharge et trop de code, en particulier avoir un simple serveur TCP presque déjà fait pour vous en C#.
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 fichiers dans System.IO. Si vous souhaitez envoyer à des serveurs distants, je le fais en utilisant des services Web. Je compresser les tableaux d'octets et les envoyer et décompresser sur le côté distant. Le tableau d'octets est très facile à réé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.
Sockets peut être la meilleure route si vous êtes juste devoir le faire sur le réseau. Si vous utilisez TCP, vous obtenez la fiabilité de la communication, mais vous avez un impact sur la vitesse. Si vous avez besoin de meilleures performances, vous pouvez essayer d'utiliser UDP à la place. Mais l'inconvénient de l'UDP est que la livraison de paquets et la commande ne sont pas garanties, donc vous devrez écrire vous-même toute cette plomberie.
Si vous avez besoin de transférer des fichiers sur le Web lui-même (par programmation, et si vous ne pouvez pas utiliser FTP), une approche de service Web via MTOM peut 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 la nouvelle fonctionnalité Remote Differential Compression. Cela non seulement fait un très bon travail à la compression d'un fichier pour réduire 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 +.
- 1. Quelle est la meilleure façon de remplacer du texte dans un fichier en utilisant C#/.NET?
- 2. Quelle est la meilleure façon d'enregistrer un RichTextFile en C#?
- 3. Quelle est la meilleure façon pour une application cliente de trouver un serveur sur un réseau local en C#?
- 4. Quelle est la meilleure façon d'écrire un tableau court [] dans un fichier en C#?
- 5. Quelle est la meilleure façon de permettre à un utilisateur de rechercher un fichier en C#?
- 6. Quelle est la meilleure façon d'écrire dans un fichier Ruby?
- 7. Quelle est la meilleure façon d'implémenter des restrictions de saisie sur un TextBox en C#?
- 8. Quelle est la meilleure façon d'initialiser un tableau sur un tableau de longueur fixe? (C++/CLI)
- 9. Quelle est la meilleure façon d'écrire [0..100] en C#?
- 10. En C#, quelle est la meilleure façon d'enchaîner les constructeurs?
- 11. quelle est la meilleure façon de marquer un texte?
- 12. Quelle est la meilleure façon de mettre en évidence un champ obligatoire sur un formulaire Web?
- 13. C: Quelle est la meilleure façon de modifier un pointeur int passé via un typedef?
- 14. Quelle est la meilleure façon d'afficher un indicateur « de chargement » sur un contrôle WPF
- 15. Quelle est la meilleure façon de déboguer un Oracle SP?
- 16. Quelle est la meilleure façon de rafraîchir un indice Nutch?
- 17. Quelle est la meilleure façon de vider un répertoire?
- 18. Quelle est la meilleure façon d'implémenter un délai AJAX?
- 19. Quelle est la meilleure façon de convertir du bitcount réseau au masque de réseau?
- 20. Quelle est la meilleure façon de déboguer un écrasement explorer.exe?
- 21. Quelle est la meilleure façon de localiser un IEnumerable?
- 22. Quelle est la meilleure façon de structurer un projet?
- 23. Quelle est la meilleure façon de remplacer un fichier atomique multi-plateforme en Perl?
- 24. Quelle est la meilleure façon de chiffrer un clob?
- 25. Quelle est la meilleure façon d'effacer un tableau de chaînes?
- 26. Quelle est la meilleure façon pour un VPC d'accéder à des fichiers sur la machine hôte?
- 27. Quelle est la meilleure façon de modifier les informations d'identification d'un service Windows en utilisant C#
- 28. Quelle est la meilleure façon de vérifier un ListView pour les éléments cochés en C#?
- 29. Quelle est la meilleure façon de construire un jeu sur un 3D-Engine existant
- 30. Quelle est la meilleure façon de vérifier la capacité du système de fichiers en utilisant .Net?
Le deuxième lien est de 2001, qui était vieux même quand cette question était fraîche. Ce n'est pas beaucoup d'un tutoriel et est plus d'un échantillon de code. – YetAnotherRandomUser