0

ファイルをリッスンする tcp ソケットが開かれたマシンがあります。

System.Net.Sockets を使用して、C# コンソール アプリケーションのソケットに接続できます。

XML ファイル (100 Gb) のデータを読み取り、ソケット経由で送信したいと考えています。

最善の方法は何ですか?それをパケットに分割したり、ストリーミングして送信したりできる microsoft.net ライブラリはありますか?

自分でチャンクごとに読む必要がありますか?

提案してください

4

4 に答える 4

0

このタスクは非常に簡単/解決可能に見えるかもしれませんが、多くの注意事項があります。ここでできる最善のことは、ある種のミドルウェアを使用してそれを行うことです。ミドルウェアの良い例は ICE です。

http://www.zeroc.com/doc/Ice-3.3.1/manual/Hello.4.5.html

この特定の仕事に適しているかどうかはわかりませんが、自分で何かを見つけるでしょう..

于 2012-08-28T19:34:26.897 に答える
0

相手側に HTTP サーバーがある (またはそこに配置できる) 場合は、Windows バックグラウンド インテリジェント転送サービスを確認することをお勧めします。

これにより、再試行、範囲のリクエストなどに関する多くの複雑さが隠されます。

MSDN Magazineには、C# からの COM API とのやり取りに関する記事があります。

于 2012-08-28T19:35:50.060 に答える
0

100Gb に悩まされている場合は、次の記事を参考にしてください。

圧縮された XML

于 2012-08-28T19:41:45.580 に答える
0

特別なことは何もありません。一度ソケット接続を開けば、必要なだけ開いたままにすることができます。xml ファイルを gzip して転送し、サーバーで使用するとよいでしょう。xml ファイルの圧縮率は少なくとも 50:1 であることが期待されます。

編集:送信用にファイルを読み取るときは注意が必要です。バッファを使用していくつかの行を読み取り、送信し、バッファを空にし、リンスして繰り返し、クライアントにファイルをロードせず、ソケット接続を介してデータの送信を開始します。

于 2012-08-28T19:31:50.657 に答える