コード例 #1
0
        public override void Decode(byte[] data, int offset)
        {
            if ((PeerHeader.Flags & (1 << 7)) != 0)
            {
                var ipBytes = new byte[16];
                Array.Copy(data, offset, ipBytes, 0, 4);
                LocalAddress = new IPAddress(ipBytes);
            }
            else
            {
                var ipBytes = new byte[4];
                Array.Copy(data, offset + 12, ipBytes, 0, 4);
                LocalAddress = new IPAddress(ipBytes);
            }

            offset += 16;

            LocalPort  = EndianBitConverter.Big.ToUInt16(data, offset);
            offset    += 2;
            RemotePort = EndianBitConverter.Big.ToUInt16(data, offset);
            offset    += 2;

            SentOpenMessage     = BgpMessage.Create(data, offset) as BgpOpenMessage;
            offset             += SentOpenMessage?.Header.Length ?? 0;
            ReceivedOpenMessage = BgpMessage.Create(data, offset) as BgpOpenMessage;
        }
コード例 #2
0
 public override void Decode(byte[] data, int offset)
 {
     BgpUpdate = BgpMessage.Create(data, offset) as BgpUpdateMessage;
 }