Example #1
0
        public static void TryParse(byte[] input, out CGMessage cgMessage)
        {
            BinaryReader reader = new BinaryReader(new MemoryStream(input));

            cgMessage = new CGMessage(reader);

            switch (cgMessage.messageType)
            {
            case MessageType.Type1:
                cgMessage = Module1.ContinueParse(reader, cgMessage);
                break;

            case MessageType.Type2:
                cgMessage = Module2.ContinueParse(reader, cgMessage);
                break;

            case MessageType.Type3:
                cgMessage = Module3.ContinueParse(reader, cgMessage);
                break;

            default:
                break;
            }

            cgMessage.ParseTailingFields(reader);
        }
Example #2
0
        public static Module3 ContinueParse(BinaryReader input, CGMessage cgMessage)
        {
            Module3 feature = new Module3(cgMessage);

            feature.value = Encoding.UTF8.GetString(input.ReadBytes(cgMessage.dataLength));

            return(feature);
        }
Example #3
0
 public CGMessage(CGMessage cgMessage)
 {
     this.TransactionId   = cgMessage.TransactionId;
     this.address         = cgMessage.address;
     this.messageType     = cgMessage.messageType;
     this.compressionType = cgMessage.compressionType;
     this.encryptionType  = cgMessage.encryptionType;
     this.dataLength      = cgMessage.dataLength;
 }
Example #4
0
        public void Receive()
        {
            IPEndPoint remoteEndpoint = new IPEndPoint(IPAddress.Any, 0);
            var        buffer         = _socket.Receive(ref remoteEndpoint);
            CGMessage  cgMessage;

            CGMessage.TryParse(buffer, out cgMessage);
            var value = ((ICGMessage)cgMessage).value;

            Console.WriteLine(value);
        }
Example #5
0
        private CGMessage GetMessage(string value)
        {
            CGMessage message = null;

            switch (Program.CurrentMessageType)
            {
            case MessageType.Type1:
                message = new Module1(value);
                break;

            case MessageType.Type2:
                message = new Module2(value);
                break;

            case MessageType.Type3:
                message = new Module3(value);
                break;

            default:
                break;
            }

            return(message);
        }
Example #6
0
 public Module3(CGMessage cgMessage)
     : base(cgMessage)
 {
 }