8

クライアントからサーバーへの接続を開き、バイナリ ファイルを読み取り、その内容をネットワーク接続を介して確実に送信するための最良の方法に関するチュートリアルを教えてもらえますか? さらに良いことに、私が参照できるオープンソースライブラリは既にこれを行っていますか?

4

6 に答える 6

6

バイナリのシリアル化を調べて、TCP ソケット経由で送信する必要があります。

さまざまなタイプのシリアル化に関する適切な説明:

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

C# での TCP クライアント/サーバーの優れた入門書:

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

于 2008-09-18T18:32:32.047 に答える
2

これは、ネットワークの意味によって異なります。ローカル ネットワークでコピーする場合は、System.IO 内でファイル コピー操作を使用できます。リモート サーバーに送信する場合は、Web サービスを使用してこれを行います。バイト配列を圧縮して送信し、リモート側で解凍します。バイト配列は、ストリームを使用してディスクに書き戻すのが非常に簡単です。

byte[] の代わりに base 64 文字列を好む人がいることは知っています。それが重要かどうかはわかりません。

于 2008-09-18T18:26:41.187 に答える
1

ネットワーク経由で行う必要がある場合は、ソケットが最適なルートになる可能性があります。TCPを使用すると、通信の信頼性は得られますが、速度に影響を与えます。より高いパフォーマンスが必要な場合は、代わりにUDPを使用してみてください。ただし、UDPの欠点は、パケットの配信と順序が保証されていないことです。そのため、すべての配管を自分で作成する必要があります。

Web自体を介してファイルを転送する必要がある場合(プログラムで、FTPを使用できない場合)、 MTOMを介したWebサービスアプローチがニーズに合う可能性があります。

Windows Server 2003 R2、Windows Vista、またはWindows Server 2008の上に構築し、内部ネットワーク転送を行う場合、別のオプションは、新しいリモート差分圧縮機能を利用することです。これは、ネットワークトラフィックを最小限に抑えるためにファイルを圧縮するのに非常に優れているだけでなく、DFSレプリケーションによって直接使用されます。欠点(.NET開発者として)は、COM+テクノロジです。

于 2008-09-18T19:47:30.133 に答える
1

私は HTTP や FTP を使用しません。単一のファイルの場合、オーバーヘッドが大きすぎてコーディングが多すぎます。特に、単純な TCP サーバーが C# でほとんど既に作成されている場合はそうです。

于 2008-09-18T18:26:16.927 に答える
0

HTTP や FTP を使用するのはどうですか? 彼らはこのために作られました。

アレックス

于 2008-09-18T18:23:18.260 に答える
0

ファイルの送信先によっては、WebClient.UploadFileAsyncWebClient.UploadFileを確認することをお勧めします。

于 2008-09-18T18:23:57.260 に答える