-i分支,主要用来设置时间间隔,这里需要两步操作,一步是获取interval值,通过interval
= strtol(optarg, &e, 10)获取,一步是要设置options |= F_INTERVAL;然后在sig_alrm()函数里面添加alarm(interval);语句,执行函数signal(SIGALRM,sig_alrm).
-q分支,设置安静模式,不显示每个收到的包的分析结果,只在结束时,显示汇总结果,
主要设置options |= F_QUIET;然后在proc_v4()函数中打印东西之前增加 if (options & F_QUIET) return; 语句,那么就跳过了打印每一个结果。 -s分支,主要用来设置数据的长度,通过datalen = strtol(optarg, &e, 10);语句来获取。 -t分支,用来设置ttl(生存时间)值,同样要经过两步操作,一步是通过ttl = strtol(optarg,
&e, 10);语句来获取ttl值,第二部是设置options |= F_TTL,最后还要在readloop()函数里面通过语句 if (options & F_TTL) setsockopt(sockfd, IPPROTO_IP, IP_TTL, &ttl, sizeof(ttl));
来改变ttl值。
-v分支,除了打印ECHO-RESPONSE数据包之外,还打印其它所有返回的ICMP数据包
七、实验数据、结果分析
-b 允许ping广播地址
-c 设置包的数量
16
-h 显示帮助信息
-i 设置时间间隔
-q 设置为安静模式,只显示结果,不显示具体的包
17
-s 设置数据的长度
-t 设置ttl值,抵达本机时如果,ttl小于设定的值就丢掉该包
-v 除了打印ECHO-RESPONSE数据包之外,还打印其它所有返回的ICMP数据包
18
八、总结
实验二的实践过程中掌握了之前没有弄明白的网络层协议的原理,但是在 最后实现部分仍然存在很多的问题,连接广播地址时没有实现同一网段内的所有主机都对发送消息的主机返回echo replay消息,主机只收到自己的返回确认消息,这个问题纠结了很久,并且也上网收集了一些资料,很遗憾的是这个问题最后还是没有成功的解决。
通过程序设计,对ICMP报文的结构模式进一步认识,对基于linux的c语言编程进一步掌握。程序设计中,对各种函数之间的协同工作运用理解更加深刻。更掌握了如何使用信号量进行通信。比如ping不同目的端,可能是目的端的不存在,但若雨目的及联通状态ping不同,可能是权限不够,即要通过root身份才可以成功执行程序;再如执行完某一段函数时未如预期般停止,则可能少了exit()函数。
九、同组人分工情况
学号 10118124
姓名 邓广晖 承担任务 -q -t 19
实验三 应用层实验—简单聊天程序的设计与实现
一、实验内容和要求
本实验要求设计并实现一个简单的聊天程序,包括服务器实现和客户端实现,具体内容和要求如下:
? 使用MSN或者QQ,分析聊天程序的功能需求;
? 在给定的参考程序的基础上,参考MSN或者QQ,对功能做出扩充,不局限于以
下的范围:
? 在客户端界面上显示所有联入聊天服务器的用户; ? 支持两个用户之间的聊天;
? 支持增加好友的功能,好友上线时如果该用户在线,则做出提醒; ? 增加用户的个人信息修改、保存和查询; ? 在聊天内容中支持中文;
? 在聊天内容中支持图片等多媒体信息; ? 支持在用户之间传输文件等附件; ? 其他扩展。
二、实验环境
本人这个实验实验是使用老师给的eclipse软件。 三、程序的需求分析与逻辑框图 需求分析:
1.个性登陆:登录框中包含个人名称,设置服务器和端口,选择性别。 E-R图为
登陆界面 名称 性别 端口号
2.聊天功能: 群聊天功能:任意用户直接在编辑区编辑文字后点击发送,所有在线用户均可在群聊天界面看到聊天内容。
私聊功能:若在用户显示界面双击某位在线用户并且在聊天室界面最下部勾选“私聊”,则可以进行私聊,只有聊天双方可在悄悄话界面看到自己的聊天内容。
E-R图为
聊天功能 群聊 私聊 服务器
3.文字属性:聊天内容的文字有字体、样式、字号和颜色。 字体有宋体,黑体,Dialog,Gulim。 样式有常规,斜体,粗体,斜粗体 字号有12、14、18、22、30、40
20
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库计算机网络课程设计(4)在线全文阅读。
相关推荐: