Moba项目开发(一)打造网络通信系统-任务13:13.编写buffer工厂创建报文以及发送报文

1.编写buffer工厂创建

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Google.protobuf;

namespace Game.Net
{
    public class BufferFactory
    {
        enum MessageType
        {
            ACK = 0;     //确认报文
            Login = 1;   //业务逻辑的报文
        }

        //创建并发送报文
        //构造函数,创建BufferFactory的
        //IMessage 导入谷歌的命名空间using Google.protobuf;
        public static BufferEntity CreateAndSendPackage(int messageID,IMessage message)
        {
            //第一个0表示序号,发送的时候改变序号
            //第二个0表示模块定位号,现在暂时定为0
            BufferEntity buffer = new BufferEntity(
                USocket.local.endPoint,
                USocket.local.sessionID,
                0,
                0,
                MessageType.Login.GetHashCode(),
                messageID,
                ProtobufHelper.ToBytes(message)     //将message对象序列化一下
                );
            USocket.local.Send(buffer);
            return buffer;
        }
    }
}

2.编写proto测试用类

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using ProtoMsg;    //所有protobuf转化为cs的文件都在这个命名空间下面

public class ProtoTest : MonoBehaviour
{
    //Start is called befored the first frame update
    void Start()
    {
        /*UserInfo userInfo = new UserInfo();
        //模拟一下
        userInfo.Account = "11111";//通过用户界面框动态的获取
        userInfo.Password = "kkkkk";

        //注册的协议
        //这些类都是继承IMessage这个接口
        UserRegisterC2S userRegisterC2S = new UserRegisterC2S();
        userRegisterC2S.UserInfo = userInfo;
        //客户端和服务器定义的1001,用于识别具体左什么业务的
        //通过下面的这个接口序列化成字节数组,构造BufferEntity成可以发送的数据
        BufferEntity bufferEntity = BufferFactory.CreateAndSendPackage(1001,userInfo);


        //反序列化 举例
        //收到 byte [ ]  字节数组.将字节数组转化成实体对象
        //反序列化成UserRegisterC2S这个类
        UserRegisterC2S userRegisterC2S1 = ProtobufHelper.FromBytes<UserRegisterC2S>(bufferEntity.proto);*/




    }

    void Update()
    {

    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值