【问题标题】:VB.net serialization across a network [closed]跨网络的VB.net序列化[关闭]
【发布时间】:2018-08-16 07:00:17
【问题描述】:

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

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

任何帮助将不胜感激。

【问题讨论】:

    标签: vb.net serialization tcpclient tcplistener


    【解决方案1】:

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

    谢谢大家。

    【讨论】:

      猜你喜欢
      • 2011-08-03
      • 2011-01-13
      • 2021-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-24
      相关资源
      最近更新 更多