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); }
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); }