Domanda

Qualcuno può indicarmi un tutorial su il modo migliore per aprire una connessione dal client al server, leggere in un file binario e inviare il suo contenuto in modo affidabile attraverso la connessione di rete?Ancora meglio, c'è una libreria open source che già fa questo che ho potuto vedere?

È stato utile?

Soluzione

Si dovrebbe esaminare la serializzazione binaria e l'invio su un socket TCP.

Buona spiegazione su diversi tipi di serializzazione:

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

Buon primer su TCP Client/Server in C#:

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

Altri suggerimenti

Questo dipende da cosa si intende per rete - se si copia su una rete locale, è possibile utilizzare solo le operazioni di copia dei file all'interno del Sistema.IO.Se hai intenzione di inviare al server remoto per fare questo utilizzo di servizi web.Ho comprimere le matrici di byte e inviare via e decomprimere sul lato remoto.L'array di byte è super facile da scrivere su disco utilizzando flussi.

So che alcune persone preferiscono base 64 corde, invece di byte[].non sono sicuro se è importante.

Come sull'utilizzo di HTTP o FTP?Loro sono stati di fatto per questo.

Alex

A seconda di dove si sta inviando il file, si potrebbe desiderare di dare un'occhiata a WebClient.UploadFileAsync e WebClient.UploadFile.

Io non userei HTTP o FTP, per un singolo file è troppo overhead e troppo codice, in particolare, facendo un semplice server TCP quasi già fatto per voi in C#.

Prese può essere il percorso migliore se si sta solo avere a che fare in rete.Se si utilizza il protocollo TCP, l'affidabilità di comunicazione, ma prendere un impatto sulla velocità.Se avete bisogno di più prestazioni, si potrebbe provare a utilizzare UDP invece.Ma il lato negativo di UDP è che la consegna del pacchetto e l'ordine non è garantito, così si avrebbe bisogno di scrivere tutto quello che idraulici voi stessi.

Se avete bisogno di trasferire file attraverso il web stesso (a livello di programmazione, e se non è possibile utilizzare FTP), quindi un servizio web approccio di via MTOM potrebbe soddisfare le vostre esigenze.

Se si sta costruendo su Windows Server 2003 R2, Windows Vista o Windows Server 2008 e facendo rete interna trasferimenti, un'altra opzione è quella di utilizzare il nuovo Compressione Differenziale Remota funzione.Questo non solo fa davvero un buon lavoro a compressione di un file per ridurre al minimo il traffico di rete, ma è utilizzato anche direttamente da replica DFS.Al ribasso (come .NET developer), è un COM+ tecnologia.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top