6

ネットワーク内の別のマシンで実行されているサービスからファイルを要求できるアプリケーションを構築しようとしています。これらのファイルはかなり大きくなる可能性があります (500 MB 以上の場合もあります)。TCP経由で送信することを検討していましたが、ファイル全体をメモリに保存する必要があるのではないかと心配しています。

クライアントはおそらく 1 人だけです。共有ディレクトリへのコピーも受け入れられません。必要な唯一の通信は、クライアントが「gimme xyz」と言い、サーバーがそれを送信することです (そして、これが正しく行われるようにするために必要なことは何でも)。

助言がありますか?

4

10 に答える 10

8

これがより簡単な方法です。BITS(バックグラウンドインテリジェント転送サービス)を使用します。すでにWinXPとVistaに組み込まれています。基本的に、WindowsUpdateを駆動するものです。

http://blogs.msdn.com/powershell/archive/2009/01/11/transferring-large-files-using-bits.aspx

http://blogs.msdn.com/jamesfi/archive/2006/12/23/how-to-use-bits-to-transfer-files.aspx

これは、誰かが書いた優れたマネージドBITSラッパーとその使用方法です。

http://www.codeproject.com/KB/cs/Managed_BITS.aspx

于 2009-01-23T04:15:05.203 に答える
2

この記事はあなたを助けるかもしれません。.NET で大きなファイルを送信することです。リンクを確認してください:

http://codetechnic.blogspot.com/2009/02/sending-large-files-over-tcpip.html

于 2009-09-20T20:05:27.730 に答える
2

.NET のソケットを使用して、ファイルとデータを転送できます。

于 2009-01-23T03:08:05.867 に答える
2

WCF ストリーミングを検討することをお勧めします。

于 2009-01-23T03:14:16.293 に答える
2

BITS には注意してください。これは非常に優れたプロトコルですが、Windows 更新プログラムの重要な部分ではありません。私たちの企業クライアントのほとんどが、マシンへの BITS の更新を許可していないことがわかりました。したがって、それに依存するアプリを構築できませんでした。

于 2009-09-20T20:11:03.487 に答える
1

FTP がオプションである場合は、簡単にするためにそれを使用します。そうしないと、TCP/IP ソケット プログラミングの世界に入り込んでしまいます。

于 2009-01-23T03:10:03.103 に答える
1

オープン ソースのedtFTPnetライブラリ経由で FTP を使用します。速くて簡単。

于 2009-07-01T13:28:43.527 に答える
0

ファイルがマシン上に物理的に存在する場合、ファイルをフォルダーに配置するだけでなく、そのフォルダーを IIS の仮想ディレクトリにして、コンテンツ ベースのルーティングや URL 書き換えを使用して要求をルーティングします。

于 2009-05-14T19:55:22.753 に答える
0

を使用しますTransmitFile(これは Win32 関数です。おそらく .NET ライブラリのメソッドでもあります)。

于 2009-01-23T03:02:09.593 に答える