- 295
- 0
- 约1.22万字
- 约 7页
- 2016-10-14 发布于贵州
- 举报
计算机网络课程计实验报告
实 验 报 告
课程名称:计算机网络
实验名称: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协议模拟实现的一般流程,画出流程图:
(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;
原创力文档

文档评论(0)