2008-09-18 8 views

Répondre

3

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#:

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

+0

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

0

Comment l'utilisation de HTTP ou FTP? Ils étaient en quelque sorte faits pour ça.

Alex

0

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#.

2

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.

0

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 +.

Questions connexes