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