【问题标题】:How to receive packages via TCP and protobuf-net如何通过 TCP 和 protobuf-net 接收包
【发布时间】:2014-02-27 19:57:05
【问题描述】:

我正在编写一个使用协议缓冲区 C# 的应用程序。 我需要一些关于如何通过 TCP 发送和接收数据的示例。 特别是,如何确定哪种类型的包裹已经到达。 我有课:

[ProtoContract]
class Package1
{
//fields
} 
[ProtoContract]
class Package2
{
//fields 
}

以及写入流的方法

private static void SendPackage(Stream stream, Package1 package)
{
   Serializer.Serialize<Package1>(stream, package);
}

private static void SendPackage(Stream stream, Package2 package)
{
   Serializer.Serialize<Package2>(stream, package);
}

现在,如何确定到达的包裹类型?

using (NetworkStream stream = client.GetStream())
{
    switch(packageType)
    {
       //deserialize package
    }
}

P.S 对不起我的英语不好。

【问题讨论】:

    标签: c# tcp protocol-buffers protobuf-net


    【解决方案1】:

    有一个 Serializer.NonGeneric 方法可用于识别对象。看这个问答How can I send multiple types of objects across Protobuf?

    【讨论】:

      猜你喜欢
      • 2016-07-16
      • 2018-01-25
      • 2012-09-27
      • 1970-01-01
      • 1970-01-01
      • 2021-09-15
      • 2019-10-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多