예제 #1
0
파일: MsgrClient.cs 프로젝트: tkiapril/aura
		protected override byte[] BuildPacket(Packet packet)
		{
			var packetSize = packet.GetSize();

			// Calculate header size
			var headerSize = 3;
			int n = packetSize;
			do { headerSize++; n >>= 7; } while (n != 0);

			// Write header
			var result = new byte[headerSize + packetSize];
			result[0] = 0x55;
			result[1] = 0x12;
			result[2] = 0x00;

			// Length
			var ptr = 3;
			n = packetSize;
			do
			{
				result[ptr++] = (byte)(n > 0x7F ? (0x80 | (n & 0xFF)) : n & 0xFF);
				n >>= 7;
			}
			while (n != 0);

			// Write packet
			packet.Build(ref result, ptr);

			return result;
		}
예제 #2
0
		protected override byte[] BuildPacket(Packet packet)
		{
			var result = new byte[6 + packet.GetSize() + 4]; // header + packet + checksum
			result[0] = 0x88;
			System.Buffer.BlockCopy(BitConverter.GetBytes(result.Length), 0, result, 1, sizeof(int));
			packet.Build(ref result, 6);

			return result;
		}
예제 #3
0
        protected override byte[] BuildPacket(Packet packet)
        {
            var result = new byte[6 + packet.GetSize() + 4];             // header + packet + checksum

            result[0] = 0x88;
            System.Buffer.BlockCopy(BitConverter.GetBytes(result.Length), 0, result, 1, sizeof(int));
            packet.Build(ref result, 6);

            return(result);
        }