コード例 #1
0
ファイル: KMessageHeader.cs プロジェクト: radtek/KeiSystem
        /// <summary>
        /// 将本 <see cref="Kei.KNetwork.KMessageHeader"/> 的所有信息编码进一个字节数组。
        /// </summary>
        /// <returns>含有本 <see cref="Kei.KNetwork.KMessageHeader"/> 所有信息的字节数组。</returns>
        public byte[] ToByteArray()
        {
            var ret = new byte[Marshal.SizeOf(typeof(KMessageHeader))];
            int n   = 0;

            byte[] buffer;

            buffer = BitConverter.GetBytes(HeaderLength);
            Array.Copy(buffer, 0, ret, n, buffer.Length);
            n     += buffer.Length;
            buffer = BitConverter.GetBytes(HeaderVersion);
            Array.Copy(buffer, 0, ret, n, buffer.Length);
            n     += buffer.Length;
            buffer = BitConverter.GetBytes(MessageID);
            Array.Copy(buffer, 0, ret, n, buffer.Length);
            n     += buffer.Length;
            buffer = BitConverter.GetBytes((int)Code);
            Array.Copy(buffer, 0, ret, n, buffer.Length);
            n     += buffer.Length;
            buffer = SourceEndPoint.ToByteArray();
            Array.Copy(buffer, 0, ret, n, buffer.Length);
            n += buffer.Length;

            return(ret);
        }