資源簡介
對以太網2.0版本進行幀解析的C++程序
代碼片段和文件信息
#include //?用于文件操作
#include //?用于程序流程控制
#include??????????//?用于字符串處理
//?定義crc校驗函數,reg為效驗余數,低8位有效
//?nextbyte為下一個輸入效驗的字節,低8位有效
void?checkcrc(int?®?int?nextbyte)??
{
//?CRC循環:每次調用進行8次循環,處理一個字節的數據
for?(int?n?=?0x80;?n?>?0;?n?>>=?1)??
{
if?((reg?&?0x80)?!=?0) ???//?若首位為1:移位,并進行異或運算
{
reg?<<=?1; ???//?左移一位
if?(?(nextbyte?&?n)?!=?0)??//?末位補一位,從NextByte讀入數據
{
reg?|=?1;
}
reg?^=?7; ???????//?首位已經移出,僅對低8位進行異或運算,7的二進制為00000111,為生成多項式的比特序列
}
else ???//?若首位為0,只移位,不進行異或運算
{
reg?<<=?1; ???//?左移一位
if?(?(nextbyte?&?n)?!=?0)??//?末位補一位,從NextByte讀入數據
{
reg?|=?1;
}
}
}
}
void?main(int?argcchar*?argv[])
{
??
????//打開文件方式
ifstream?file(argv[1]?ios::in|ios::binary|ios::nocreate);?
if?(!file.is_open())
{
cout?<“打開文件失敗.“?< cout<<“----------------請輸入命令行,格式如下------------“< cout<<“----------------frameParse?input------------------“<
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????225359??2012-10-13?22:05??王曉敏?作業2120120283\Debug\fr
?????文件?????262448??2012-10-13?22:05??王曉敏?作業2120120283\Debug\fr
?????文件??????23657??2012-10-13?22:05??王曉敏?作業2120120283\Debug\fr
????I.A....????296100??2012-10-13?22:05??王曉敏?作業2120120283\Debug\fr
?????文件?????443392??2012-10-13?22:05??王曉敏?作業2120120283\Debug\fr
?????文件??????41984??2012-10-13?22:06??王曉敏?作業2120120283\Debug\vc60.idb
?????文件??????61440??2012-10-13?22:05??王曉敏?作業2120120283\Debug\vc60.pdb
?????文件???????6402??2012-10-13?22:00??王曉敏?作業2120120283\fr
?????文件???????3449??2012-10-13?22:05??王曉敏?作業2120120283\fr
?????文件????????528??2012-10-13?22:10??王曉敏?作業2120120283\fr
?????文件??????33792??2012-10-13?22:10??王曉敏?作業2120120283\fr
?????文件??????48640??2012-10-13?22:10??王曉敏?作業2120120283\fr
?????文件????????772??2012-10-13?22:05??王曉敏?作業2120120283\fr
?????文件?????300694??2012-10-13?22:03??王曉敏?作業2120120283\說明文檔.wps
?????目錄??????????0??2012-10-13?22:05??王曉敏?作業2120120283\Debug
?????目錄??????????0??2012-10-13?22:10??王曉敏?作業2120120283
-----------?---------??----------?-----??----
??????????????1748657????????????????????16
評論
共有 條評論