2012-11-15 37 views
0

我需要能夠將文件+元數據發送到另一臺計算機上的服務,並且此服務應對數據執行操作並返回多個文件+元數據。序列化多個流.NET

問題是,這些文件有時非常大,因此分配內存來保存客戶端或服務器上的文件和關聯的元數據是不可行的。

我想知道是否有任何圖書館可以包括文件流和其他數據,將它們結合到一個單一的流,以便能夠通過網絡進行流式傳輸。

到目前爲止,我的最佳解決方案是首先發送包含文件長度的序列化元數據,然後將不同文件流附加到該流,然後解構另一端的流。希望有更好的方法來解決這個問題?

我想我正在尋找類似BinaryFormatter的東西,它支持序列化我希望序列化的流的內容。

回答

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或其他)