0

我有一个聊天室,它有一个文件共享系统,我通过稍微修改 monotorrent 构建了该系统。

当用户共享文件时,客户端序列化 Monotorrent.common.torrent 对象(表示 .torrent 文件)并将其发送到另一个对象内部的服务器,然后服务器对其进行反序列化。这仅在用户共享的文件很小(大约小于 1 MB)时才有效。当服务器较大时,服务器会给出以下例外:

二进制流“0”不包含有效的 BinaryHeader。可能的原因是无效的流或序列化和反序列化之间的对象版本更改。

这是我的反序列化代码:

public CommendData ByteArrayToCommendData(byte[] arrBytes)
{
    using (MemoryStream memStream = new MemoryStream(arrBytes))
    {
        BinaryFormatter binForm = new BinaryFormatter();
        memStream.Seek(0, SeekOrigin.Begin);
        CommendData obj = (CommendData)binForm.Deserialize(memStream);
        return obj;
    }
}

(CommendData 在此实例中包含 Monotorrent.common.torrent 对象)

4

0 回答 0