資源簡介
以太網幀解析及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?????????????{???//找幀頭
????????????????index?=?FindPreamble(binaryReader?index?fileStream.Length);
????????????????if?((index?+?14?)?>?fileStrea
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????184320??2010-10-17?19:00??2120100402_周建偉_第一次作業\Ethernetfr
?????文件??????26112??2010-10-17?19:00??2120100402_周建偉_第一次作業\Ethernetfr
?????文件???????5632??2005-11-11?22:25??2120100402_周建偉_第一次作業\Ethernetfr
?????文件???????2303??2007-06-04?17:03??2120100402_周建偉_第一次作業\Ethernetfr
?????文件???????2303??2009-09-25?16:52??2120100402_周建偉_第一次作業\Ethernetfr
?????文件????????397??2009-09-25?17:02??2120100402_周建偉_第一次作業\Ethernetfr
?????文件???????2124??2010-10-17?18:41??2120100402_周建偉_第一次作業\Ethernetfr
?????文件????????296??2010-10-17?10:53??2120100402_周建偉_第一次作業\Ethernetfr
?????文件??????16476??2010-10-17?19:00??2120100402_周建偉_第一次作業\Ethernetfr
?????文件?????323590??2010-10-17?18:41??2120100402_周建偉_第一次作業\Ethernetfr
?????文件?????184320??2010-10-17?19:00??2120100402_周建偉_第一次作業\Ethernetfr
?????文件??????26112??2010-10-17?19:00??2120100402_周建偉_第一次作業\Ethernetfr
?????文件????????333??2010-10-17?19:00??2120100402_周建偉_第一次作業\Ethernetfr
?????文件???????1373??2010-10-17?18:19??2120100402_周建偉_第一次作業\Ethernetfr
?????文件???????1219??2010-10-17?18:47??2120100402_周建偉_第一次作業\Ethernetfr
?????文件????????928??2010-10-16?09:41??2120100402_周建偉_第一次作業\Ethernetfr
????..A..H.?????16896??2010-10-17?18:47??2120100402_周建偉_第一次作業\Ethernetfr
?????文件?????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\Ethernetfr
?????文件???????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_周建偉_第一次作業\Ethernetfr
?????目錄??????????0??2010-10-17?19:04??2120100402_周建偉_第一次作業\Ethernetfr
?????目錄??????????0??2010-10-17?19:04??2120100402_周建偉_第一次作業\Ethernetfr
?????目錄??????????0??2010-10-17?19:04??2120100402_周建偉_第一次作業\Ethernetfr
?????目錄??????????0??2010-10-17?19:04??2120100402_周建偉_第一次作業\Ethernetfr
?????目錄??????????0??2010-10-17?19:04??2120100402_周建偉_第一次作業\Ethernetfr
?????目錄??????????0??2010-10-17?19:04??2120100402_周建偉_第一次作業\Ethernetfr
?????目錄??????????0??2010-10-17?19:04??2120100402_周建偉_第一次作業\Ethernetfr
............此處省略5個文件信息
評論
共有 條評論