VB.net跨网络序列化

时间:2018-03-08 02:26:54

标签: vb.net serialization tcpclient tcplistener

我正在尝试通过网络序列化一个类,但我一直收到以下错误。

System.Runtime.Serialization.SerializationException: 'End of Stream encountered before parsing was completed.'

我见过几个线程,建议将网络流转换为内存流,以便将位置设置为0,但这对我不起作用。

我的代码是

'Receiver

Private Sub ReceivingMethod()

    Dim f As BinaryFormatter = New BinaryFormatter()

    Dim msg As clsMessage

    msg = f.Deserialize(TCPClient.GetStream())

    ProcessMessage(msg)

    Threading.Thread.Sleep(50)

End Sub

'Sender

Private Sub SendingMethod()

    do while MessageQueue.count > 0

        'Get the first message from the queue
        Dim msg As clsMessage = MessageQueue(0)

        Dim f As BinaryFormatter = New BinaryFormatter()

            f.Serialize(TCPClient.GetStream(), msg)

            MessageQueue.Remove(msg)

        End If

        Threading.Thread.Sleep(50)

    Loop
End Sub

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我发现protobuf-net很容易实现,并且比使用二进制格式化器更容易。我最初认为“它有多难”,但后来很明显为什么要创建外部序列化。

谢谢大家。

相关问题