- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
本科生实验报告实验课程 计算机网络与TCP/IP协议体系(2)学院名称 信息科学与技术学院专业名称 通信工程学生姓名 李 浩 敏 学生学号 201313070224 指导教师 刘 飚 实验地点 6B603 实验成绩 二〇 一五 年 二 月 —— 二〇 一五 年 六 月学生实验 心得通过本次实验,让我更进一步的了解了LINUX内核链表和哈希链表,比如如何创建链表,添加、删除一个节点及如何遍历输出一个链表,还有通过实验一和实验二可知LINUX内核链表和LINUX哈希链表之间的不同,它们两者的定义不同,后者用了一个二级指针,在哈希链表中表示哈希表头,表示其它节点。实验三中利用线程同步的方法,我们可以完成多线程访问一个由Linux内核通用链表所实现的消息队列。实验四中主要学到的是充分展示了什么是IP分片,并举例说明了IP的分片现象及其特点。简单阐述了IP分片的原理,并加以重点分析了MTU。学生(签名):李浩敏 2015年6月13日指导教师评语成绩评定:指导教师(签名): 年 月 日实验一:Linux内核通用链表的使用一:实验要求待创建的链表头变量名为user_queue。作为链表的宿主节点类型定义如下:struct user{int id;/*user id*/struct list_head list;};针对上述user_queue链表,要求以队列方式向其中依次添加10个类型为struct user的宿主节点,并要求这10个宿主节点的id依次为1—10依次遍历输出这10个宿主节点的id从链表中删除首个宿主节点,然后依次遍历该队列并输出余下各宿主节点的id二:源程序及实验结果:1:依次遍历输出这10个宿主节点的id,程序代码:#include stdio.h#include stdlib.h#include list.hstruct user {int id;/*user id*/ struct list_head list; }; int main(){struct user u[10];struct user *p;struct list_head *pos;p=u[0];LIST_HEAD(user_queue);for(int i=0;i=9;i++){p-id=i+1;list_add_tail(p-list, user_queue);p++;}list_for_each(pos,user_queue){printf(%d\n,list_entry(pos,struct user,list)-id);}return 0;}程序运行截图:2:从链表中删除首个宿主节点,然后依次遍历该队列并输出余下各宿主节点的id程序代码:#include stdio.h#include stdlib.h#include list.hstruct user{int id;struct list_head list;};int main(void){Int i;int flag;//The number that need to deletestruct list_head *pos;struct list_head *del_pos;LIST_HEAD(user_queue);struct user *p;for(i=0;i10;i++){p = (struct user *)malloc(sizeof(struct user));p-id = i+1;list_add_tail(p-list,user_queue);}printf(\nAfter add:\n);list_for_each(pos,user_queue){printf(%d ,list_entry(pos,struct user,list)-id);} printf(\nWhich node do you want to delete,input numbers:\n);scanf(%d,flag);if(flag=0 ||flag10){printf(Error of inputing\n);return 0;}i=1;del_pos=user_queue;while(del_pos!=NULLi=flag){del_pos = del_pos-next;i++;}printf(\n After delete:\n);list_del(del_pos);list_for_each(pos,user_queue){printf(%d ,list_entry(pos,struct user,list)-id);}printf(\n);return 0;}程序运行截图:实验二:Linux内核通用哈希链表的使用一:实验要求1、待创建的哈希链表头数组为st
文档评论(0)