【实战】Unity3d实战之Unity3d网络游戏实战篇(9):协议

Unity3d实战之Unity3d网络游戏实战篇(9):协议

学习书籍《Unity3d网络游戏实战》 罗培羽著 机械工业出版社
本文是作者在学习过程中遇到的认为值得记录的点,因此引用的代码等资源基本出资罗培羽老师的书籍,如有侵权请联系,必删。

 一套通用的服务端框架要支持不同游戏所使用的各种协议格式。所谓协议就是通信规则,例如:如果发送端直接发送一串数值数据给接收端,接收端并不知道这一串数据到底是用来做什么的,里面的数据代表了什么信息。而协议就是解决这一问题的一套规则,一套发送端和接收端都知道的规则。在要发送的数据前添加某些标志,发送端和接收端共同规定带有这个标志的数据的用途。这样,两端就可以对接收到的数据进行解析,并根据两者共同定立的规则来分辨所接收到的数据的用途。
 
 所有的协议都有相同的方法:解码、编码、获取协议名等等,以此为基础,我们可以编写一个协议的基类:
 

using System;

namespace Server
{
    public class ProtocolBase
    {
        /// <summary>
        /// Decode the readBuff from start to start+length. Package readBuff as a protocol and return it.
        /// </summary>
        /// <param name="readBuff">Read buff.</param>
        /// <param name="start">Type: int, decode begin from start.</param>
        /// <param name="length">Type: int, decode from begin to start+length.</param>
        public virtual ProtocolBase Decode(byte[] readBuff, int start, int length)
        {
            return new ProtocolBase ();
        }

        /// <summary>
        /// Encode the protocol's content to binary array.
        /// </summary>
        public virtual byte[] Encode()
        {
            return new byte[] { };
        }

        /// <summary>
        /// Return the protocol's name.
        /// </summary>
        /// <returns>The name.</returns>
        public virtual string GetName()
        {
            return "";
        }

        /// <summary>
        /// Return the protocol's description.
        /// </summary>
        /// <returns>The desc.</returns>
        
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值