实验记录,可能存在错误,仅供学习参考
第1关UDP套接字创建与端口绑定
1、双击打开桌面上的工作区文件夹workspace,再双击实训文件夹myshixun,打开文件message7-1.txt。
2、在/home/headless/Desktop/workspace/myshixun/client/目录下,阅读程序test.c,请用编辑器Vscode,完善/***BEGIN***/与/***END***/之间的语句(3处,每处1句)。将这3个语句依次写到文件message7-1.txt的第1、2、3行末尾,要求语句中尽可能不含空格。
3、并保存该文件message7-1.txt。
推荐使用vs,这里使用的是vim
vim操作:
右键选择使用vim打开
进入后键盘输入i进入插入模式,输入相关语句如图所示。
在完成输入后,键盘Esc退出插入模式
再次输入:wq
保存并退出
之后根据头歌该关卡的提示进行运行就行(我这里做实验赶时间就没有运行截图)
打开命令行并使用cd命令进入到c文件所在文件夹,再输入执行命令(不然会存在找不见文件的情况
命令:
gcc test.c -o test //编译 chmod +x test //提权 ./test //运行c程序第2关UDP数据发送与接收
1、双击打开桌面上的工作区文件夹workspace,再双击实训文件夹myshixun,打开文件message7-2.txt。
2、在/home/headless/Desktop/workspace/myshixun/client/目录下,阅读客户端程序c2.c。
3、在/home/headless/Desktop/workspace/myshixun/server/目录下,阅读服务器端程序s2.c,请用编辑器Vscode,完善/***BEGIN***/与/***END***/之间的语句(3处,每处1句)。将这3个语句依次写到文件message7-2.txt的第4、5、6行末尾,要求语句中尽可能不含空格。
4、并保存该文件message7-2.txt。
运行命令:
gcc s2.c -o s2 chmod +x s2 ./s2第3关拓展实验
1.参考案例项目设计一个基于UDP的文件下载工具
该工具由服务器端程序s3.c和 客户端程序c3.c两部分组成。要求服务器端先运行,它会提示可下载的文件信息,客户端后运行,它会向服务器端请求下载某个文件,文件不存在会提示,文件下载完毕会提示,然后双方程序结束。
服务器端运行时可带一个参数,代表UDP端口,没有参数时端口默认为1234;
客户端运行时只能带1个参数或3个参数,带1个参数时,这个参数是要下载的文件名;带3个参数时,它们分别是服务器端IP、服务器端端口、要下载的文件名。
2、双击打开桌面上的工作区文件夹workspace,再双击实训文件夹myshixun, 打开文件message7-3.txt。
3、服务器端程序s3.c已经完成,放在以下目录内:
/home/headless/Desktop/workspace/myshixun/server/
客户端程序c3.c基本已经完成,放在以下目录内:
/home/headless/Desktop/workspace/myshixun/client/
请用编辑器Vscode,完善/***BEGIN***/与/***END***/之间的语句(2处,每处1句)。
将这2个语句依次写到文件message7-3.txt的第7、8行末尾,要求语句中尽可能不含空格。
4、分别在两个终端窗口内,编译这两个程序;通过编译后再运行测试这两个程序。
5、把编译后的客户端程序c3,发到自己的邮箱内。在当前的平台上,进入一个终端窗口,用ifconfig命令查看自己主机的IP地址,进入服务器端所在目录,运行s3。
6、在另一个浏览器窗口中,进入上一次实验项目的桌面系统,从自己的邮箱内下载c3到本地(默认目录:/home/headless/下载),在当前的平台上,进入一个终端窗口,用ifconfig命令查看自己主机的IP地址,然后带参数运行c3(3个参数)。
7、针对两端通信报文,要求在服务器端用Wireshark进行跟踪,通信结束后,在Wireshark的显示过滤器栏内,按某一方的IP地址和UDP端口信息进行过滤。
8、分析所捕获的报文,最大的UDP PDU(协议数据单元)长度是多少字节?其在网络层封装时被分成几片?请将答案(只写数值)依次写到文件message7-3.txt的第9行末尾,要求答案之间加空格隔开。
代码补齐
这个关卡有两个c文件,分别模拟了客户端(c3.c)和服务端(s3.c),需要开启两台虚拟机
我是选择以实验七的虚拟机为服务端,以实验六的虚拟机为客户端
(1)先使用 GCC 编译器编译 C 语言源代码
gcc c3.c -o c3得到编译后的c3程序文件
(2)在服务端虚拟机上登录qq邮箱,将c3程序文件(是程序文件,没有后缀,不是带.c的源代码文件)发送给自己。
(3)在客户端虚拟机上登录qq邮箱,将c3文件下载下来。
(4)在两个虚拟机里分别使用ifconfig查询ip地址,将参数填好进行信息交换
服务端
客户端
(5)
使用wireshare抓包,并且过滤只寻找udp包,发现最长的是2009
分成两片
神秘的答案