- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实 验 报 告
课程名称:计算机网络
实验名称:ARQ协议模拟实现
系院:信息科学与技术学院信息安全专业
实验日期:2007-4-20
班级:0405403
实验报告日期:2007-5-10
姓名:乔来阳
学号:040540312
同组人:无
老师批阅签字:_______
实验内容:
编写两个计算机程序p1,p2。
p1模拟发送方:首先从界面读取待发送字符(每接受一个字符的输入),保存到文件exe1.txt中,并启动计时器;
p2模拟接收方,它从exe1.txt中查找是否有新字符到来,并提供模拟界面给用户选择:
1. Ack--接收该字符
2. NAK--〉丢弃
3. 无反应--〉导致超时
将用户选择的结果记录到exe2.txt中;接收的字符保存到exe3.txt 中。
由于可视化操作不精通,这次实验过程在C++环境下模拟运行。
运行环境:Visual C++ 6.0
编程思路:新建三个文本文件,每次运行程序开始阶段使系统随机产生100个随机数,并使其转化为字符格式,让P1从界面读取字符,输送到exe1,txt文件中。并启动计时器记录传输时间。读入exe1.txt,若发现有新字符,则提供模拟界面给用户选择接收还是丢弃;若无反应,则输出超时信息。将用户选择的结果记录到exe2.txt中;接收的字符保存到exe3.txt 中。文本文件读写一律采用追加模式。
实验步骤:
1.分析ARQ协议模拟实现的一般流程,画出流程图: exe1.txtexe2.txt
exe1.txt
exe2.txt。1. Ack--接收该字符2..NAK--〉丢弃.3. 无反应--〉导致超时。选择的结果记录到exe2.txt中
exe3.txt。接收的字符保存到exe3.txt 中
P11模拟发送方
界面
从界面读取字符
保存到exe1中,并启动计时器
接收新字符
P2模拟接收方
(ARQ协议流程图)
2.结合C++文件操作部分编写源程序:
源程序如下:
#include iostream.h
#include fstream.h
#include stdlib.h
#include iomanip.h
#include time.h
#include string.h
void main()
{long curtime_front_Sender, curtime_rear_Sender,
curtime_front_Receiver, curtime_rear_Receiver;
curtime_front_Receiver=time(NULL);//定义时钟
char ch,choice,str[4], array[100];
int i,tag=0;//定义开关变量
fstream file1; fstream file2; fstream file3;
cout打开文件: exe1,exe2,exe3endl;
file1.open(exe1.txt,ios::in|ios::out|ios::app);
if(file1.fail())
{cout不能打开文件:exe1endl;
exit(0);
}
file2.open(exe2.txt,ios::in|ios::out|ios::app);
if(file2.fail())
{cout不能打开文件:exe2endl;
exit(0);
}
file3.open(exe3.txt,ios::in|ios::out|ios::app);
if(file3.fail())
{cout不能打开文件:exe3endl;
exit(0);
}
coutendlendl\t\t\t ARQ协议模拟实验\n\n\n;
cout \t\t\t1 随机产生字符\n\n\t\t\t2 接收 \n\n\t\t\t3 退出endl;
do
{cinchoice;
switch(choice)
{case 1:
for(i=0;i100;i++)//随机产生字符
{array[i]=a+rand()%26;
coutsetw(2)array[i];
file1.put(array[i]);//字符读入exe1.txt文件中
curtime_front_Sender=time(NULL);//时钟运行
}tag=1;
file1.close();
cout字符已读入exe1.txt文件中.endl;
break;
case 2:
if(tag==1)
{cout文件exe1.txt中有新字符到来.endl;
cout输入Ack:接收字符\n;
您可能关注的文档
最近下载
- 国开《形势与政策》2025秋专题测验1-5答案.pdf VIP
- 中小学生常见心理健康问题的识别及干预.ppt VIP
- 城市轨道交通服务礼仪:城市轨道交通服务礼仪的基础知识PPT教学课件.pptx VIP
- 第11课 浮力(教学设计)-四年级科学上册(苏教版).pdf
- 大连海事大学2020-2021年《货币银行学》期末考试试卷(A卷)含参考答案.docx
- 兖州人民医院护理人员招聘简章.DOC VIP
- 下肢静脉曲张病人的护理.ppt VIP
- 2025年中考数学总复习《尺规作图》专项检测卷(带答案).pdf VIP
- 角在生活中的应用.pptx VIP
- 牛津上海版四年级上册英语Module4 Unit 3 Weather (period 3 Weather Talk about Christmas)课件.pptx VIP
原创力文档


文档评论(0)