c#使用protobuf-net + socket发送/接收集合的例子

本文关键字:集合 protobuf-net 使用 socket 发送 | 更新日期: 2023-09-27 18:15:18

我正在寻找如何通过使用protobuf-net序列化和套接字连接在两台机器之间传输集合的完整示例。我成功找到的只是代码的独立部分,而且没有人不能向像我这样的新手解释如何将所有这些东西组合起来。.proto文件后面:

using System;
using ProtoBuf;
namespace Proto.Transaction
{    
    [Serializable]
    [ProtoContract]
    public class Transaction
    {
        [ProtoMember(1)]
        public int Type { get; set; }
        [ProtoMember(2)]
        public int AgentID { get; set; }
        [ProtoMember(3)]
        public string TransactionName { get; set; }
        [ProtoMember(4)]
        public string ScriptName { get; set; }
        [ProtoMember(5)]
        public DateTime StartTime { get; set; }
        [ProtoMember(6)]
        public double TransactionLength { get; set; }
    }
}

最后,我必须接收这个Observable Collection并将其设置为DataSet(为了将其保存为XML并在DataGrid中呈现)。我将感谢任何帮助和/或链接到适当的材料在网上。关于

c#使用protobuf-net + socket发送/接收集合的例子

最基本的层次,您可以查看快速入门/3 Sockets.cs下的示例。这里的关键点是,如果您在原始套接字级别上工作,则需要在消息之间添加某种分区(因为TCP只是一个流)。该示例通过使用*WithLengthPrefix方法来完成此操作。

然而,在许多情况下,您可能能够使用已经包含消息分区的预滚动RPC/消息传递实现;在这种情况下,不需要使用*WithLengthPrefix方法(尽管欢迎您这样做)。