예제 #1
0
        protected static byte[] CreateMessage(
            ControlPacketTypes packetType,
            byte length1,
            byte?length2 = null,
            byte?flags   = null, ushort?packetId = null)
        {
            byte[] fixHeader = new byte[length2.HasValue ? 3 : 2];
            fixHeader[0] = (byte)((byte)packetType << 4);

            if (flags.HasValue)
            {
                fixHeader[0] = (byte)(fixHeader[0] | flags);
            }


            fixHeader[1] = length1;

            if (length2.HasValue)
            {
                fixHeader[2] = length2.Value;
            }


            if (packetId.HasValue)
            {
                int oldLength = fixHeader.Length;
                Array.Resize(ref fixHeader, fixHeader.Length + 2);
                fixHeader[oldLength]     = (byte)(packetId >> 8);
                fixHeader[oldLength + 1] = (byte)(packetId);
            }
            return(fixHeader);
        }
예제 #2
0
 protected static byte[] CreateConnectMessage(
     ControlPacketTypes packetType,
     byte?flags      = null,
     ushort?packetId = null)
 {
     return(null);
 }
예제 #3
0
 private MessageHeader(
     ControlPacketTypes packetTypes,
     byte flags,
     int length,
     ushort packetId)
 {
     PacketTypes      = packetTypes;
     Flags            = flags;
     Length           = length;
     PacketIdentifier = packetId;
 }
예제 #4
0
 private MessageHeader(ControlPacketTypes packetTypes, byte flags, int length)
 {
     PacketTypes = packetTypes;
     Flags       = flags;
     Length      = length;
 }