wetransfer puedo por pesados pesado mejor manera mandar mail internet grandes fly enviar correo con como archivos archivo c# .net ftp tcp data-transfer

puedo - ¿Cuál es la mejor manera de enviar un archivo a través de una red usando C#?



la mejor manera de enviar archivos pesados (7)

¿Alguien puede dirigirme a un tutorial sobre la mejor manera de abrir una conexión de cliente a servidor, leer en un archivo binario y enviar sus contenidos de manera confiable a través de la conexión de red? Mejor aún, ¿hay una biblioteca de código abierto que ya haga esto a la que pueda referirme?


¿Qué hay de usar HTTP o FTP? Estaban hechos para esto.

Alex




Esto depende de lo que quiera decir con la red: si está copiando en una red local, puede usar las operaciones de copia de archivos dentro de System.IO. Si desea enviar a servidores remotos lo hago usando servicios web. Comprimo matrices de bytes y las envío y descomprimo en el lado remoto. La matriz de bytes es muy fácil de volver a escribir en el disco utilizando flujos.

Sé que algunas personas prefieren bases de 64 cadenas en lugar del byte []. no estoy seguro de si importa


Los zócalos pueden ser la mejor ruta si solo tienes que hacerlo a través de la red. Si usa TCP, obtiene la fiabilidad de la comunicación pero tiene un impacto en la velocidad. Si necesita un mayor rendimiento, puede intentar usar UDP en su lugar. Pero la desventaja de UDP es que la entrega y el pedido de paquetes no está garantizado, por lo que tendría que escribir toda esa tubería usted mismo.

Si necesita transferir archivos a través de la propia red (mediante programación, y si no puede usar FTP), un enfoque de servicio web a través de MTOM podría satisfacer sus necesidades.

Si está construyendo sobre Windows Server 2003 R2, Windows Vista o Windows Server 2008 y haciendo transferencias de red internas, otra opción es aprovechar la nueva característica Compresión diferencial remota . Esto no solo hace un buen trabajo al comprimir un archivo para minimizar el tráfico de la red, sino que también lo usa directamente la replicación de DFS. Downside (como desarrollador .NET), es una tecnología COM +.


No usaría HTTP o FTP, para un solo archivo es demasiada sobrecarga y demasiado para codificar, especialmente teniendo un servidor TCP simple ya hecho para usted en C #.