NetworkComms V3 序列化器之Protobuf.net和 JSONSerializer

NetworkComms v3版本中,默认使用的是protobuf.net序列化器。

即当您没有指定序列化的时候,系统自动使用默认的protobuf.net序列化器。

当然我们也可以自己指定序列化器

语法如下:

 SendReceiveOptions aboveOptions = new SendReceiveOptions(DPSManager.GetDataSerializer<ProtobufSerializer>(), null, null);

使用protobuf.net 传送的类,需要添加protobuf相关的attribute,大致如下.

如果传送的类,是sql数据表相对应的实体类,可以通过模板生成  NetworkComms网络通信框架配套CodeSmith模板使用简介

using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using ProtoBuf;
using EEDocManage.Data;

namespace EEDocManage.Business
{
    [ProtoContract]
    public class Dep
    {

        #region Constructors

        public Dep()
        { }

        #endregion

        #region Private Properties

        private int iD = -1;
        private string title = string.Empty;

        #endregion

        #region Public Properties

        [ProtoMember(1)]
        public int ID
        {
            get { return iD; }
            set { iD = value; }
        }
        [ProtoMember(2)]
        public string Title
        {
            get { return title; }
            set { title = value; }
        }

        #endregion

    }

}

NeworkComms V3框架还自定了 JSONSerializer 序列化器(支持.net Framework 4.0版本)

使用的话只要指定一下序列化器即可

 SendReceiveOptions aboveOptions = new SendReceiveOptions(DPSManager.GetDataSerializer<JSONSerializer>(), null, null);

具体的其他设置,由于我对json还不是太了解,正在探索中

www.networkComms.cn整理

时间: 2024-09-30 23:52:31

NetworkComms V3 序列化器之Protobuf.net和 JSONSerializer的相关文章

基于networkcomms V3通信框架的c#服务器与java客户端进行通信之Protobuf探讨

在上一篇 基于networkcomms V3通信框架的c#服务器与java客户端进行通信探讨  中探讨了在C#端与Java端通信中传递字符,有朋友提到如果传递int类型的整数,会出现编码的问题. 到网上找到了一篇文章< 使用protobuf进行C#与Java通信 >进行学习 ,使用protobuf进行编码,传递数据,好像这样可以避免编码的问题. (虽然编码问题解决了,但是粘包问题并没有解决,有经验的朋友介绍下怎样解决粘包的问题) 服务器端基于networkcomms V3 C#通信框架. ne

NetworkComms V3 使用Json序列化器进行网络通信

刚才在网上闲逛,偶然看到一篇文章 C#(服务器)与Java(客户端)通过Socket传递对象 网址是:http://www.cnblogs.com/iyangyuan/archive/2012/12/23/2829712.html#3140522 其中提到了 C#与java如通过传递对象通信的问题 摘引如下: 通信关键: C#和java用Socket通信,发送数据和接收数据可以统一采用UTF-8编码,经过测试,使用UTF-8编码可以成功传递对象. 对于Socket技术,发送数据之前,一般将字符串

NetworkComms V3 之自定义对象

能够发送自定义对象,并且在发送的时候对发送的对象进行加密,压缩是networkComms v3框架的一个重要特性. 具体可以参考源码中 ExampleConsole 工程文件 使用NetworkComms V3 框架发送自定义对象的语法如下: CustomObject myCustomObject = new CustomObject("ben", 25); NetworkComms.SendObject("Message", "127.0.0.1&quo

NetworkComms V3 模拟登陆

演示NetworkComms V3的用法 例子很简单 界面如下: 服务器端代码: 开始监听: //服务器开始监听客户端的请求 Connection.StartListening(ConnectionType.TCP, new IPEndPoint(IPAddress.Parse(txtIP.Text), int.Parse(txtPort.Text))); button1.Text = "监听中"; button1.Enabled = false; //此方法中包含服务器具体的处理方法

基于NetworkComms V3 使用二进制数据通信

如果客户端和服务端都是C#语言,可以使用 NetworkComms V3 框架自带的,包装的protobuf序列化方式,或者BinaryFormater的方式序列化,都很方便. 刚才和朋友探讨基于networkComms V3与其他语言通信,客户端和服务器端之间传递二进制数组. 本例实现了C#客户端与服务器端传递二进制数据,以此模仿与其他语言的通信 服务器端代码: using System; using System.Collections.Generic; using System.Compo

NetworkComms V3 之支持TCP连接和UDP连接

NetworkComms V3 无缝的支持TCP连接和UDP连接. 您可以很容易的创建这两种连接 //创建一个连接信息对象 ConnectionInfo connInfo = new ConnectionInfo("192.168.0.1", 10000); //创建一个TCP连接 Connection newTCPConn = TCPConnection.GetConnection(connInfo); //创建一个UDP连接 Connection newUDPConn = UDPC

官方论坛对Networkcomms v3性能的讨论,先记录一下

www.networkcomms.net官方论坛对Networkcomms v3性能的讨论,先记录一下 I replaced the StreamTool.Write implementation with a simple synchronous version: public static double Write(Stream inputStream, long inputStart, long inputLength, Stream destinationStream, int writ

NetworkComms V3 之同步收发数据

NetworkComms通信框架,是一款来自英国的c#语言编写的通信框架,历时6年研发,成熟稳定,性能可靠. NetworkComms v3的核心功能在一定程度上是以异步的方式进行的. NetworkComms提供了相应的功能,使得可以同步请求数据和获得相应的相应,非常的简单. try { //连接信息类 ConnectionInfo connectionInfo = new ConnectionInfo("127.0.0.1", 10000); //获取一个TCP连接 TCPConn

NetworkComms V3 之发送UDP广播消息

NetworkComms通信框架,是一款来自英国的c#语言编写的通信框架,历时6年研发,成熟稳定,性能可靠. NetworkComms v3目前只支持基本的UDP通信 UDP通信一个很强大的功能,就是UDP广播.允许网络上发送的一个数据包,可以被多个适配器接收.下面的场景中可以考虑使用UDP通信 1:检查哪些网络端点在线 2: 通知网络端点有一个新的服务 3: 传递信息到一组端点上 使用networkComm V3 发送UDP数据包 UDPConnection.SendObject("ChatM