题目描述

我们都学习过计算机网络,知道网络层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

BUPT 2012复试机考 4T相关推荐

  1. BUPT 2012复试机考 2T

    题目描述 ​给你一个n*n的矩阵, , 求其矩阵的k次幂,即Pk 输入格式 第一行,一个整数T(0<T<=10),表示要求矩阵的个数. 接下来有T组数据,每组数据格式如下: 第一行:两个数 ...

  2. 东南大学计算机复试机考,复试指南 | 东南复试机考快题

    原标题:复试指南 | 东南复试机考快题 机考快题 从2015年保研考试开始,非本校同学保研进入东南大学建筑学建筑设计及其理论方向,快题部分采用六小时机考大快题的形式. 从而,进入东南大学建筑学设计方向 ...

  3. 哈工大计算机研究生复试笔试,2011年哈工大计算机研究生复试(机考+面试)周

    好久没来这儿了,主要是上周是我们哈尔滨工业大学计算机科学与技术学院研究生复试和我们毕业开题答辩的时间,好多好多事-- 昨天晚上获得了研究生的特等奖学金的同学请全班吃的烤肉,现在身上还有味道,也多亏了有 ...

  4. 西安交通大学计算机学院复试机考,西安交通大学电信学院2018年硕士考试自命题及复试范围...

    [学术型] 080900电子科学与技术 方向 01(全日制)物理电子学 02(全日制)电路与系统 03(全日制)微电子学与固体电子学 04(全日制)电磁场与微波技术 考试科目 (1) 思想政治理论 ( ...

  5. 计算机考研复试机考难度,考研复试难还是初试难 都考什么

    考研初试是全国统一命题,考试科目较为统一,难度较大.考研复试是学校组织的,考察学生的综合能力,难度根据初试过线人数与最终录取人数比例设置,难度不一,相对来说初试的难度会大一些. 考研初试考什么 初试主 ...

  6. CISSP认证机考时间表2012年12月-2013年(部分更新)

    地点:越秀区中山六路218-222号捷泰广场1904室(电话:020-81320878) 2012年12月11.12.13.15日 2013年1月10.15.16.17.22.23.24.29.30 ...

  7. 浙江大学2022年计算机考研复试一般考什么

    浙江大学2022年计算机考研复试时间及要求由各学院自定,参考2021年复试时间定于2021年3月20日,预计2022年3月下旬会开展计算机考研复试,具体事项请以浙江大学计算机科学与技术学院公布信息为准 ...

  8. cpa用计算机考,cpa是机考还是笔试?考试方式大揭秘!

    注册会计师考试实行的是全国统一考试制度,从2012年考试,全国统一注册会计师考试全面实行计算机化考试方式,也就是我们简称的"机考".由于注会机考系统和我们常见的笔试方式有所区别,为 ...

  9. 上海交大计算机考研复试,上海交大计算机考研复试机试

    上海交大 计算机考研 SJTU-CS 复试机试 (2005-2010) 题目 我自己在准备考研时曾做了下06,07,08,09年的题目,并且在博客中提供了一个参考的题解,10年的题目以及11年保研的题 ...

最新文章

  1. Linux(Ubuntu)------常用命令汇总
  2. 提醒一下技术人,你是不是陷入局部最优了
  3. C++ stl 通用算法和成员函数使用
  4. Nginx基本数据结构之ngx_hash_keys_arrays_t
  5. OPA 1 - testsuite.opa.html
  6. 【转载】Elasticsearch客户端API使用Demo
  7. 分布式ID | 这六种分布式ID生成方法,总有一款适合你
  8. SCI科技论文写作、投稿与发表(一)
  9. 安装官方 Synaptics 驱动,终于解决 HP Pavilion G4 笔记本 讨厌的触摸板锁定问题!...
  10. 跨境电商,独立站和第三方平台孰更具优势?
  11. mysql主从同步 忽略表_mysql 主从同步时忽略指定的表
  12. 十个C语言项目,从小白到月入10K
  13. Minimax算法——井字棋
  14. 如何使用PS修改图片背景
  15. 掌门1对1获3.5亿美元E-1轮融资,华人文化产业基金、中金甲子基金等投资...
  16. 你想要的样子 我都有
  17. Intel(Altera)FPGA的SOF转JIC文件和下载详细教程
  18. kafka broker 进入 conflicted ephemeral node 死循环
  19. 【阿里云】Apsara Clouder云计算专项技能认证-云服务器ECS入门,考试真题分享
  20. 用批处理删除指定字符之前或之后的所有内容(FOR /F 中的Delims和Tokens总结)

热门文章

  1. beandefinition与beanfactory
  2. LRU缓存机制—leetcode146
  3. java-HashMap源码学习
  4. C语言面向对象编程(六):配置文件解析
  5. 动态规划 - 买卖股票的最佳时机 III
  6. ZOJ-3494 BCD Code (ac自动机+数位dp)
  7. TCP中的RTT和RTO
  8. 7.1.2 定义改进的Sales_date类
  9. Linux网络编程---详解TCP
  10. STC89C52RC单片机例程实现_流水灯1_模块化(C语言实现)