计算机网络课程计实验报告.docVIP

  • 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)

1亿VIP精品文档

相关文档