예제 #1
0
        public static UDP_HEADER GetUdpHeader(byte[] frameData, int offset)
        {
            UDP_HEADER udpHeader = new UDP_HEADER();

            if (-1 == udpHeader.DeserializeToStruct(frameData, offset))
            {
                return(null);
            }

            return(udpHeader);
        }
예제 #2
0
        private void ParseUdpHeader(byte[] udpBytes, int offset, uint srcAddr, uint dstAddr)
        {
            UDP_HEADER udpHeader = ProtocolParseHelper.GetUdpHeader(udpBytes, offset);

            if (null == udpHeader)
            {
                throw new ArgumentException();
            }

            int         udpDataLen = udpBytes.Length - offset - udpHeader.Len;
            UdpDataInfo udpData    = new UdpDataInfo(udpDataLen)
            {
                SrcAddr = srcAddr,
                DstAddr = dstAddr,
                SrcPort = udpHeader.src_port,
                DstPort = udpHeader.des_port
            };

            Buffer.BlockCopy(udpBytes, offset + udpHeader.Len, udpData.UdpDataBytes, 0, udpDataLen);

            ParseUdpData(udpData);
        }