0

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

我可以使用 System.Net.Sockets 连接到我的 C# 控制台应用程序中的套接字

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

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

我必须自己逐块阅读吗?

请建议

4

4 回答 4

0

This task although may seem quite easy/solvable it has a lot of caveats. The best thing you can do here is use some kind of middleware to do it. A good example of middleware is ICE.

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

I'm not sure if it's a good candidate for this particular job, but you'll find something yourself..

于 2012-08-28T19:34:26.897 回答
0

If you have an HTTP server on the other end (or can put one there) then you might want to look at Windows Background Intelligent Transfer Services

This will hide a lot of complexity around retries, requesting ranges, etc.

There is an article on interacting with the COM API from C# on MSDN Magazine.

于 2012-08-28T19:35:50.060 回答
0

你应该做的没什么特别的,一旦你打开一个套接字连接,你可以保持它打开只要你想。最好将 xml 文件 gzip,传输,然后在服务器上使用它。我希望 xml 文件的压缩率至少为 50:1。

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

于 2012-08-28T19:31:50.657 回答
0

如果 100Gb 让您感到困扰,您可能需要阅读以下内容以获取想法:

压缩的 XML

于 2012-08-28T19:41:45.580 回答