BUPT 2012复试机考 4T
生活随笔
收集整理的這篇文章主要介紹了
BUPT 2012复试机考 4T
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
我們都學習過計算機網絡,知道網絡層IP協議數據包的頭部格式如下:
其中IHL表示IP頭的長度,單位是4字節;總長表示整個數據包的長度,單位是1字節。
傳輸層的TCP協議數據段的頭部格式如下:
?
頭部長度單位為4字節。
你的任務是,簡要分析輸入數據中的若干個TCP數據段的頭部。 詳細要求請見輸入輸出部分的說明。
輸入
第一行為一個整數T,代表測試數據的組數。以下有T行,每行都是一個TCP數據包的頭部分,字節用16進制表示,以空格隔開。數據保證字節之間僅有一個空格,且行首行尾沒有多余的空白字符。
保證輸入數據都是合法的。
輸出
對于每個TCP數據包,輸出如下信息:Case #x,x是當前測試數據的序號,從1開始。
Total length = L bytes,L是整個IP數據包的長度,單位是1字節。
Source = xxx.xxx.xxx.xxx,用點分十進制輸出源IP地址。輸入數據中不存在IPV6數據分組。
Destination = xxx.xxx.xxx.xxx,用點分十進制輸出源IP地址。輸入數據中不存在IPV6數據分組。
Source Port = sp,sp是源端口號。
Destination Port = dp,dp是目標端口號。
對于每個TCP數據包,最后輸出一個多余的空白行。
具體格式參見樣例。
請注意,輸出的信息中,所有的空格、大小寫、點符號、換行均要與樣例格式保持一致,并且不要在任何數字前輸出多余的前導0,也不要輸出任何不必要的空白字符。
樣例輸入
2 45 00 00 34 7a 67 40 00 40 06 63 5a 0a cd 0a f4 7d 38 ca 09 cd f6 00 50 b4 d7 ae 1c 9b cf f2 40 80 10 ff 3d fd d0 00 00 01 01 08 0a 32 53 7d fb 5e 49 4e c8 45 00 00 c6 56 5a 40 00 34 06 e0 45 cb d0 2e 01 0a cd 0a f4 00 50 ce 61 e1 e9 b9 ee 47 c7 37 34 80 18 00 b5 81 8f 00 00 01 01 08 0a 88 24 fa c6 32 63 cd 8d樣例輸出
Case #1 Total length = 52 bytes Source = 10.205.10.244 Destination = 125.56.202.9 Source Port = 52726 Destination Port = 80Case #2 Total length = 198 bytes Source = 203.208.46.1 Destination = 10.205.10.244 Source Port = 80 Destination Port = 52833來源
2012機考D題?
#include <bits/stdc++.h> using namespace std; char able[10]; int bit(char temp) {int num=0;if(temp>='0'&&temp<='9')num=temp-'0';else if(temp>='a'&&temp<='f')num=temp-'a'+10;return num; } int change(int num) {int result=0;if(num==4)result=bit(able[4]);else if(num==2)result=bit(able[2]);int g=16;while(--num){result+=bit(able[num])*g;g*=16;}return result; } int main() {int T=0,rank=1;scanf("%d",&T);getchar();while(T--){int i=0,head_lenth=0;char donser[1000];memset(donser,0,sizeof(donser));gets(donser);head_lenth=bit(donser[1])*4*3;able[1]=donser[6];able[2]=donser[7];able[3]=donser[9];able[4]=donser[10];cout<<"Case #"<<rank<<endl<<"Total length = "<<change(4)<<" bytes"<<endl;able[1]=donser[36];able[2]=donser[37];cout<<"Source = "<<change(2)<<".";able[1]=donser[39];able[2]=donser[40];cout<<change(2)<<".";able[1]=donser[42];able[2]=donser[43];cout<<change(2)<<".";able[1]=donser[45];able[2]=donser[46];cout<<change(2)<<endl;able[1]=donser[48];able[2]=donser[49];cout<<"Destination = "<<change(2)<<".";able[1]=donser[51];able[2]=donser[52];cout<<change(2)<<".";able[1]=donser[54];able[2]=donser[55];cout<<change(2)<<".";able[1]=donser[57];able[2]=donser[58];cout<<change(2)<<endl;able[1]=donser[head_lenth];able[2]=donser[head_lenth+1];able[3]=donser[head_lenth+3];able[4]=donser[head_lenth+4];cout<<"Source Port = "<<change(4)<<endl;able[1]=donser[head_lenth+6];able[2]=donser[head_lenth+7];able[3]=donser[head_lenth+9];able[4]=donser[head_lenth+10];cout<<"Destination Port = "<<change(4)<<endl<<endl;rank++;}return 0; }?
轉載于:https://www.cnblogs.com/dzzy/p/6815041.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的BUPT 2012复试机考 4T的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASP.NET MVC Json的序列化
- 下一篇: 安装Hue后的一些功能的问题解决干货总结