我们有一台打开了 tcp 套接字的机器来监听文件。
我可以使用 System.Net.Sockets 连接到我的 C# 控制台应用程序中的套接字
我想读取 xml 文件(100 Gb)中的数据并通过套接字发送。
最好的方法是什么?是否有一个 microsoft.net 库可以将其分解为数据包或流式传输并发送出去?
我必须自己逐块阅读吗?
请建议
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..
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.
你应该做的没什么特别的,一旦你打开一个套接字连接,你可以保持它打开只要你想。最好将 xml 文件 gzip,传输,然后在服务器上使用它。我希望 xml 文件的压缩率至少为 50:1。
编辑:当您读取文件进行发送时,您必须注意,使用缓冲区读取一些行,发送,清空缓冲区,冲洗并重复,不要在客户端加载文件,然后开始通过套接字连接发送数据。
如果 100Gb 让您感到困扰,您可能需要阅读以下内容以获取想法: