public override byte[] GetEncoding()
        {
            try
            {
                MemoryStream outputStream = new MemoryStream();
                BinaryWriter binaryWriter = new BinaryWriter(new BufferedStream(outputStream));

                MessagesEncodingUtil.WriteMessageType(binaryWriter, this);
                MessagesEncodingUtil.WriteByte(binaryWriter, (byte)ConfirmationMessageType);

                binaryWriter.Flush();

                byte[] buffer = outputStream.ToArray();

                if (buffer.Length < EncodingConstants.MAX_MESSAGE_LENGTH)
                {
                    return(outputStream.ToArray());
                }
                else
                {
                    throw new BinaryEncodingException();
                }
            }
            catch (Exception)
            {
                throw new BinaryEncodingException("Decode");
            }
        }
        public ConnectionMessage(byte[] encoding)
            : this()
        {
            try
            {
                MemoryStream input        = new MemoryStream(encoding, 0, encoding.Length, false);
                BinaryReader binaryReader = new BinaryReader(new BufferedStream(input));

                MessagesEncodingUtil.ReadByte(binaryReader);
            }
            catch (Exception)
            {
                throw new BinaryEncodingException("Encode");
            }
        }
Ejemplo n.º 3
0
        public ByteArrayMessage(byte[] encoding)
            : this()
        {
            try
            {
                MemoryStream input        = new MemoryStream(encoding, 0, encoding.Length, false);
                BinaryReader binaryReader = new BinaryReader(new BufferedStream(input));

                MessagesEncodingUtil.ReadByte(binaryReader);
                int binaryArrayLength = MessagesEncodingUtil.ReadInt(binaryReader);
                ByteArray = MessagesEncodingUtil.ReadByteArray(binaryReader, binaryArrayLength);
            }
            catch (Exception)
            {
                throw new BinaryEncodingException("Encode");
            }
        }
Ejemplo n.º 4
0
        public override byte[] GetEncoding()
        {
            try
            {
                MemoryStream outputStream = new MemoryStream();
                BinaryWriter binaryWriter = new BinaryWriter(new BufferedStream(outputStream));

                MessagesEncodingUtil.WriteMessageType(binaryWriter, this);

                if (PeerAddress.PrivateEndPoint == null)
                {
                    MessagesEncodingUtil.WriteString(binaryWriter, "null");
                }
                else
                {
                    MessagesEncodingUtil.WriteString(binaryWriter, PeerAddress.PrivateEndPoint.ToString());
                }

                if (PeerAddress.PublicEndPoint == null)
                {
                    MessagesEncodingUtil.WriteString(binaryWriter, "null");
                }
                else
                {
                    MessagesEncodingUtil.WriteString(binaryWriter, PeerAddress.PublicEndPoint.ToString());
                }

                binaryWriter.Flush();

                byte[] buffer = outputStream.ToArray();

                if (buffer.Length <= EncodingConstants.MAX_MESSAGE_LENGTH)
                {
                    return(outputStream.ToArray());
                }
                else
                {
                    throw new BinaryEncodingException();
                }
            }
            catch (Exception)
            {
                throw new BinaryEncodingException("Decode");
            }
        }
Ejemplo n.º 5
0
        public PeerAddressMessage(byte[] encoding)
            : this()
        {
            try
            {
                MemoryStream memoryStream = new MemoryStream(encoding, 0, encoding.Length, false);
                BinaryReader binaryReader = new BinaryReader(new BufferedStream(memoryStream));

                TypeOfMessage = (MessageType)MessagesEncodingUtil.ReadByte(binaryReader);

                IPEndPoint localEndPoint  = ParseIpEndPoint(MessagesEncodingUtil.ReadString(binaryReader));
                IPEndPoint publicEndPoint = ParseIpEndPoint(MessagesEncodingUtil.ReadString(binaryReader));

                PeerAddress = new PeerAddress(localEndPoint, publicEndPoint);
            }
            catch (Exception)
            {
                throw new BinaryEncodingException("Encode");
            }
        }