news 2026/8/22 12:45:23

【计算机网络 实验七】LINUX环境下UDP通信程序设计

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【计算机网络 实验七】LINUX环境下UDP通信程序设计

实验记录,可能存在错误,仅供学习参考

第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

分成两片


神秘的答案

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/22 12:44:21

VSCode配置js教程及VS Code常用教程

文章目录一、基础环境搭建二、核心插件配置浏览器调试一、基础环境搭建 安装 Node.js & npm 从 Node.js 官网 下载 LTS 版本安装包,安装时勾选自动配置环境变量选项,自定义安装位置,一直到最后安装,其它不要勾选。 验证安…

作者头像 李华
网站建设 2026/8/22 12:42:32

AI编码助手权限越界:无CVE漏洞的风险与治理框架

1. 项目缘起:当AI编码助手成为“影子开发者”最近在团队里推动AI编码助手(比如Cursor、GitHub Copilot)的规模化应用时,我遇到了一个非常棘手,但又普遍存在、鲜少被公开讨论的问题。我们给AI助手设定了清晰的“行动纲领…

作者头像 李华
网站建设 2026/8/22 12:35:59

【工作杂谈】20260806_CROSS JOIN 的神奇用法:灵活生成多维聚合组合

文章目录1、CROSS JOIN简介2、大数据下的应用场景2.1 引入分组聚合函数2.1.1 大数据领域 OLAP 分组扩展引入时间线2.2 引入CROSS JOIN搭配辅助表2.3 详细步骤2.3.1 第一个组合:255 0 0 0 02.3.2 第一个组合:255 255 0 0 2552.3.3 组合总结3、CROSS JOIN扩…

作者头像 李华
网站建设 2026/8/22 12:32:24

把任意文本变成知识图谱:rahulnyk/knowledge_graph 完整上手指南

把任意文本变成知识图谱:rahulnyk/knowledge_graph 完整上手指南 【免费下载链接】knowledge_graph Convert any text to a graph of knowledge. This can be used for Graph Augmented Generation or Knowledge Graph based QnA 项目地址: https://gitcode.com/g…

作者头像 李华
网站建设 2026/8/22 12:32:15

【多智能体】AI 金融智能体团队案例讲解

目录 案例简介 案例目标 核心功能 技术要点 预期效果 技术栈与核心依赖 编程语言 核心框架 项目配置 环境变量配置 依赖安装 项目结构 关键文件说明 核心代码实现 1. 导入依赖模块 2. 初始化数据库 3. 创建网络智能体 4. 创建金融智能体 5. 创建智能体团队 …

作者头像 李华