91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 2KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-10
  • 語言: 其他
  • 標簽: crc-8校驗??

資源簡介

解析已封裝好的 模擬IEEE 802.3格式的Ethernet幀的封包文件(封包文件是二進制文件,文件名為input,文件中包含若干個Ethernet幀,其中有正確的幀,也有錯誤的幀),列出每個Ethernet幀的各個字段的值,并判斷幀的正確性

資源截圖

代碼片段和文件信息

#include?
#include?
#include?

using?namespace?std;

struct?frame
{
????unsigned?char?qdm[7];???
????unsigned?char?djf;??????
????unsigned?char?mddz[6];??
????unsigned?char?ydz[6];???
????unsigned?char?cd[2];????
????unsigned?char?data[1500];
????unsigned?char?jym;?????
???};
?
unsigned?cdz[10];??
frame?fra[10];

int?read_file()
{

????ifstream?infile(“input“ios::binary);
for(int?j=0;j<10;j++)
{
infile.read((char*)fra[j].qdm7);
????????infile.read((char*)&fra[j].djf1);
????infile.read((char*)&fra[j].mddz6);
????infile.read((char*)&fra[j].ydz6);
????infile.read((char*)&fra[j].cd2);
????
????cdz[j]=fra[j].cd[1]+fra[j].cd[0]*256;
????????


if(cdz[j]<46)?cdz[j]=46;
????else?if(cdz[j]>1500)
{
cout<<“數據溢出“< ????????system(“pause“);
????????exit(1);
}

infile.read((char*)&fra[j].datacdz[j]);
????infile.read((char*)&fra[j].jym1);

if(infile.eof())?break;
}

return(j);
?????????
}



unsigned?crc(int?j)
{unsigned?char?file[2000];
?unsigned?length;

?
for(int?i=0;i<6;i++)
file[i]=fra[j].mddz[i];
for(i=0;i<6;i++)
file[i+6]=fra[j].ydz[i];
for(i=0;i<2;i++)
file[i+12]=fra[j].cd[i];
for(i=0;ifile[i+14]=fra[j].data[i];
length=cdz[j]+14;
unsigned??crc=0;
??unsigned??g=0x07;?
??for?(int?m=0;?m??{
????
????crc?^=?file[m];
????
????for(int?n=0;n<8;n++)
????{
????????if(crc?&?0x80?)
????????????crc=(crc<<1)^g;
????????else
????????????crc=crc<<1;
????}

????}
????crc&=0xff;
??
return?crc;
}



void?main()
{
int?jn;
unsigned?CRC;?
n=read_file();
????

for(j=0;j {
cout<<“序號:“<????
????int?i;

????cout<<“前導碼:“;
????for(i=0;i<7;i++)
????cout<????????cout<
????cout<<“幀前定界符:“<????
????cout<<“目的地址:“;
????for(i=0;i<6;i++)
{cout<?? ????if(i<5)?cout<<“-“;}
????cout<????
????cout<<“源地址:“;
????for(i=0;i<6;i++)
{cout< ????if(i<5)?cout<<“-“;}
???? cout<????
????cout<<“數據長度:“;
????for(i=0;i<2;i++)
{cout< ????if(i<5)?cout<<“?“;}
????cout<
????????cout<<“數據字段:“<????????CRC=crc(j);
if(CRC==fra[j].jym)
{
cout<<“CRC校驗(正確):“< ????cout<<“狀態:“<<“Accept“< }
else
{
cout<<“CRC校驗(錯誤):“< cout<<“狀態:“<<“Discard“< }

cout< }

system(“pause“);
}







?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????2303??2006-10-06?13:46??frameparser\input

?????文件???????2755??2009-05-17?10:23??frameparser\frameparser.cpp

?????目錄??????????0??2009-05-17?10:18??frameparser

-----------?---------??----------?-----??----

?????????????????5058????????????????????3


評論

共有 條評論

相關資源