• 大小: 201KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-12
  • 语言: 其他
  • 标签: 帧解析  

资源简介

以太网帧解析及CRC校验,坑爹的实验二十字有木有

资源截图

代码片段和文件信息

using System;
using System.IO;
using System.Collections.Generic;
using System.Text;

namespace Ethernetframe
{
    class frame
    {
        #region 帧的相关参数(私有)
        private byte[] preamble;        //前导码+帧前定界符(8B)
        private byte[] sourceAddress;   //源MAC地址(6B)
        private byte[] destAddress;     //目的MAC地址(6B)
        private Int16 length;           //帧长度(2B)
        private byte[] dataField;       //数据(46~1500B)
        private byte fcs;               //帧校验字段(1B本程序采用8位CRC校验)
        private string fileName;        //读取和保存帧的文件
        #endregion

        #region 帧的相关参数(可见)
        public byte[] Preamble
        {   //帧头是固定的,不允许对外开放
            get { return preamble; }
        }
        public byte[] SourceAddress
        {
            get { return sourceAddress; }
            set { sourceAddress = value; }
        }
        public byte[] DestAddress
        {
            get { return destAddress; }
            set { destAddress = value; }
        }
        public Int16 Length
        {
            get { return length; }
            set { length = value; }
        }
        public byte[] DataField
        {
            get { return dataField; }
            set { dataField = value; }
        }
        public byte Fcs
        {
            get { return fcs; }
            set { fcs = value; }
        }
        public string FileName
        {
            get { return fileName; }
            set { fileName = value; }
        }
        #endregion

        /// 
        /// 帧的构造函数
        /// 

        public frame()
        {
            //由于帧头是固定的,所以在构造帧时即可填充
            preamble = new byte[8] { 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAB };
            //源MAC地址默认为00-16-76-B4-E4-77
            sourceAddress = new byte[6] { 0x00 0x16 0x76 0xB4 0xE4 0x77 };
            //目的MAC地址默认为FF-FF-FF-FF-FF-FF
            destAddress = new byte[6] { 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF};
        }

        /// 
        /// 帧的解析
        /// 

        public void Analyse()
        {
            int count;
            char[] dataChars;
            byte checkSum;
            string[] dataStrings;
            string checkResult dataMessage;
            FileStream fileStream;
            long index dataLength;
            BinaryReader binaryReader;

            //安全性检查,若文件不存在的话返回
            if (!File.Exists(this.fileName))
            {
                Console.WriteLine(string.Format(“请检查文件{0}是否存在“ this.fileName));
                return;
            }

            count = 0;
            index = 0;
            fileStream = new FileStream(this.fileName FileMode.Open);
            binaryReader = new BinaryReader(fileStream);
            while (index < fileStream.Length)//遍历整个文件
            {   //找帧头
                index = FindPreamble(binaryReader index fileStream.Length);
                if ((index + 14 ) > fileStrea

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     184320  2010-10-17 19:00  2120100402_周建伟_第一次作业\Ethernetframe\Ethernetframe\bin\Debug\Ethernetframe.exe

     文件      26112  2010-10-17 19:00  2120100402_周建伟_第一次作业\Ethernetframe\Ethernetframe\bin\Debug\Ethernetframe.pdb

     文件       5632  2005-11-11 22:25  2120100402_周建伟_第一次作业\Ethernetframe\Ethernetframe\bin\Debug\Ethernetframe.vshost.exe

     文件       2303  2007-06-04 17:03  2120100402_周建伟_第一次作业\Ethernetframe\Ethernetframe\bin\Debug\input

     文件       2303  2009-09-25 16:52  2120100402_周建伟_第一次作业\Ethernetframe\Ethernetframe\bin\Debug\input1

     文件        397  2009-09-25 17:02  2120100402_周建伟_第一次作业\Ethernetframe\Ethernetframe\bin\Debug\input2

     文件       2124  2010-10-17 18:41  2120100402_周建伟_第一次作业\Ethernetframe\Ethernetframe\Ethernetframe.csproj

     文件        296  2010-10-17 10:53  2120100402_周建伟_第一次作业\Ethernetframe\Ethernetframe\Ethernetframe.csproj.user

     文件      16476  2010-10-17 19:00  2120100402_周建伟_第一次作业\Ethernetframe\Ethernetframe\frame.cs

     文件     323590  2010-10-17 18:41  2120100402_周建伟_第一次作业\Ethernetframe\Ethernetframe\iconthemes.ico

     文件     184320  2010-10-17 19:00  2120100402_周建伟_第一次作业\Ethernetframe\Ethernetframe\obj\Debug\Ethernetframe.exe

     文件      26112  2010-10-17 19:00  2120100402_周建伟_第一次作业\Ethernetframe\Ethernetframe\obj\Debug\Ethernetframe.pdb

     文件        333  2010-10-17 19:00  2120100402_周建伟_第一次作业\Ethernetframe\Ethernetframe\obj\Ethernetframe.csproj.FileListAbsolute.txt

     文件       1373  2010-10-17 18:19  2120100402_周建伟_第一次作业\Ethernetframe\Ethernetframe\Program.cs

     文件       1219  2010-10-17 18:47  2120100402_周建伟_第一次作业\Ethernetframe\Ethernetframe\Properties\AssemblyInfo.cs

     文件        928  2010-10-16 09:41  2120100402_周建伟_第一次作业\Ethernetframe\Ethernetframe.sln

    ..A..H.     16896  2010-10-17 18:47  2120100402_周建伟_第一次作业\Ethernetframe\Ethernetframe.suo

     文件     115712  2010-10-17 18:34  2120100402_周建伟_第一次作业\Ethernet帧结构解析程序.doc

     文件         69  2010-10-17 19:05  2120100402_周建伟_第一次作业\exe\data

     文件     184320  2010-10-17 19:00  2120100402_周建伟_第一次作业\exe\Ethernetframe.exe

     文件       2303  2009-09-25 16:52  2120100402_周建伟_第一次作业\exe\input1

     文件        397  2009-09-25 17:02  2120100402_周建伟_第一次作业\exe\input2

     目录          0  2010-10-17 19:04  2120100402_周建伟_第一次作业\Ethernetframe\Ethernetframe\obj\Debug\TempPE

     目录          0  2010-10-17 19:04  2120100402_周建伟_第一次作业\Ethernetframe\Ethernetframe\bin\Debug

     目录          0  2010-10-17 19:04  2120100402_周建伟_第一次作业\Ethernetframe\Ethernetframe\obj\Debug

     目录          0  2010-10-17 19:04  2120100402_周建伟_第一次作业\Ethernetframe\Ethernetframe\bin

     目录          0  2010-10-17 19:04  2120100402_周建伟_第一次作业\Ethernetframe\Ethernetframe\obj

     目录          0  2010-10-17 19:04  2120100402_周建伟_第一次作业\Ethernetframe\Ethernetframe\Properties

     目录          0  2010-10-17 19:04  2120100402_周建伟_第一次作业\Ethernetframe\Ethernetframe

     目录          0  2010-10-17 19:04  2120100402_周建伟_第一次作业\Ethernetframe

............此处省略5个文件信息

评论

共有 条评论