コード例 #1
0
        private bool CheckHead(FPData data)
        {
            if (!this._pkg.IsTcp(data) && !this._pkg.IsHttp(data))
            {
                return(false);
            }

            if (data.GetVersion() < 0 || data.GetVersion() >= FPConfig.FPNN_VERSION.Length)
            {
                return(false);
            }

            if (!this._pkg.CheckVersion(data))
            {
                return(false);
            }

            if (!this._pkg.IsMsgPack(data) && !this._pkg.IsJson(data))
            {
                return(false);
            }

            if (!this._pkg.IsOneWay(data) && !this._pkg.IsTwoWay(data) && !this._pkg.IsAnswer(data))
            {
                return(false);
            }

            return(true);
        }
コード例 #2
0
        public bool CheckVersion(FPData data)
        {
            if (data.GetVersion() < 0)
            {
                return(false);
            }

            if (data.GetVersion() >= FPConfig.FPNN_VERSION.Length)
            {
                return(false);
            }

            return(true);
        }
コード例 #3
0
        private MemoryStream BuildHeader(FPData data, int size)
        {
            MemoryStream ms = new MemoryStream();

            if (this.IsHttp(data))
            {
                ms.Write(FPConfig.HTTP_MAGIC, 0, 4);
            }

            if (this.IsTcp(data))
            {
                ms.Write(FPConfig.TCP_MAGIC, 0, 4);
            }

            ms.WriteByte(FPConfig.FPNN_VERSION[data.GetVersion()]);

            if (this.IsJson(data))
            {
                ms.WriteByte(FPConfig.FP_FLAG[data.GetFlag()]);
            }

            if (this.IsMsgPack(data))
            {
                ms.WriteByte(FPConfig.FP_FLAG[data.GetFlag()]);
            }

            ms.WriteByte(FPConfig.FP_MESSAGE_TYPE[data.GetMtype()]);

            return(ms);
        }