1
我使用客戶端服務器程序通過網絡發送文件。在讀取文件的字節(與File.ReadAllBytes()
)後,我將字節數組設置爲對象的字段。然後序列化並將該對象發送到客戶端,客戶端應該在其中反序列化對象並通過使用BinaryWriter
來獲取文件。將文件的字節數組作爲字段序列化對象
客戶端 - 服務器之間的所有消息都是通過序列化一個名爲Command的類的對象傳遞的。
當文件加載到字節數組時,此方法似乎消耗大量內存。
任何人都可以提出另一種機制,我可以一點一點地發送文件,而不會消耗太多的內存。是否可以發送文件的內存地址,然後服務器使用客戶端上的內存地址(使用循環)一點一點地提取文件?
我已經使用套接字。這似乎需要對代碼進行完整的重組,不是嗎? @cybermaxs – manas
是的,但它會在wcf中更容易。我的回答並不合適,因爲我是wcf的忠實粉絲。也檢查http://stackoverflow.com/questions/5659189/how-to-split-a-large-file-into-chunks-in-c – Cybermaxs
yeps謝謝,這似乎是一個很好的文章,但仍然是不可能的因爲我通過序列化/反序列化對象在客戶端服務器之間傳遞消息。再次重組是必要的,對吧? @cybermaxs – manas