我需要能够将文件+元数据发送到另一台计算机上的服务,并且该服务应对数据执行操作并返回多个文件+元数据。
问题是文件有时非常大,因此在客户端或服务器上分配内存来保存文件和关联的元数据是不可行的。
我想知道是否有任何库可以包含文件流和其他数据,将它们组合成单个流,以便能够通过网络传输它们。
到目前为止,我最好的解决方案是首先发送包含文件长度的序列化元数据,然后将不同的文件流附加到该流,然后在另一端解构流。希望有更优雅的方法来解决这个问题?
我想我正在寻找像BinaryFormatter这样的东西,它支持序列化我希望序列化的流的内容。
答案 0 :(得分:0)
我的网络库可以毫无问题地发送非常大的流。它也可以非常快地完成(当前的HTTP服务器实现在我的计算机上每秒处理2700个请求)。
你只是告诉图书馆发送一个流,它将使用块来完成。
检查HTTP服务器示例,因为它只针对正文:https://github.com/jgauffin/griffin.networking/blob/master/Source/Protocols/Http/Griffin.Networking.Protocol.Http/HttpService.cs
Context.Send(message.Body);
行会发送信息流(FileStream
或其他)