如何在C#中通过套接字传输100 GB的xml文件?

时间:2012-08-28 19:27:36

标签: c# sockets tcp

我们有一台打开tcp套接字的机器听取文件。

我可以使用System.Net.Sockets

连接到我的C#控制台应用程序中的套接字

我想读取xml文件(100 Gb)中的数据并通过套接字发送。

最好的方法是什么?是否有一个microsoft.net库可以将其分解为数据包或流式传输并发送它?

我是否必须自己阅读chunk?

请建议

4 个答案:

答案 0 :(得分:0)

你应该做什么特别的事情,一旦打开套接字连接,你可以随意打开它。 gzip xml文件,传输它然后在服务器上使用它会很好。我希望xml文件的压缩率至少为50:1。

编辑: 当您读取文件以进行发送,使用缓冲区读取某些行,发送,清空缓冲区,冲洗并重复并且不在客户端上加载文件然后开始通过套接字连接发送数据时,您必须注意。

答案 1 :(得分:0)

这项任务虽然看起来很容易/可解决但却有很多警告。你可以做的最好的事情是使用某种中间件来做到这一点。中间件的一个很好的例子是ICE。

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

我不确定这是否适合这份特殊的工作,但你会找到自己的东西..

答案 2 :(得分:0)

如果你的另一端有HTTP服务器(或者可以在那里放一个),那么你可能想看看Windows Background Intelligent Transfer Services

这将在重试,请求范围等方面隐藏很多复杂性。

有一篇关于在MSDN Magazine上与C#进行COM API交互的文章。

答案 3 :(得分:0)

如果100Gb让您感到不安,您可能需要阅读此内容以获取相关信息:

Compressed XML