arq实验源码及报告_第1页
arq实验源码及报告_第2页
arq实验源码及报告_第3页
arq实验源码及报告_第4页
arq实验源码及报告_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机网络实验报告课程名:计算机网络实验名称:arq协议模拟实验学院 班级 姓名 学号实验日期:2015年11月24日教师批阅签字:一. 实验题目arq协议模拟实现实验二、实验环境程序是由visual c+ 6. 0编写实现的,只需要安装vc6. 0,打开arq. dsw,编译运行即可。三. 实验内容及步骤编写两个计算机程序pl p2opl模拟发送方:首先从界面读取待发送字符(每 接受一个字符的输入),保存到文件filel. txt中,并启动计时器;p2模拟接收方,它从filel. txt中查找是否有新字符到来,并提供模拟界面给用户选择:1. ack接收该字符2. nak丢弃3. 无反应一导致

2、超时将用户选择的结果记录到file2. txt中;接收的字符保存到file3. txt中;pl等待接收方应答:读取f订e2. txt决定下面 的操作:1)如果是ack,则继续接收用户输入;2)如果是nak,则重传该字符;3)如果超时仍没有新的ack或nak,则重传该 字符。四、实验中遇到的问题该实验中主要的是对文件的操作,通过对c+的复 习,基本没有什么困难,其中比较不好操作的是 时间超时的控制,通过在网上查找资料,发现 sleep函数可以设置延迟,这样的话超时模块也可 以比较简单的写出来。五、通过实验掌握的内容这次实验主要让我了解到arq的实验的工作原理,基 本是发送端发送数据,接收端接收数

3、据并确认, 发送端接到ack消息,继续发送,若接收端丢弃 或超时,则发送端重发数据sender. h#i nclude<iostream> #include<stdlib. h> void buffer (); void ack(); void nak ();void timeout(); receiver.h# includeiostreani> #include<stdlib. h> void rece frame(); void send_ack(); void send_nak(); sender, cpp#includez,sender h

4、#include<fstream h> #include<windows. h> #includez/receiver- h void buffer()char ch;fstroam filel;filei. open(filei. txt", ios:out); if(filel.failo)cout<文件打开失败! ;exit(0);cout<<,z发送端:,z<<endl«endl;cout«z,请输入将要发送的数据帧:;cin>>ch;filel. put (ch);cout«z,

5、数据ll存入缓存。"cndl;filel. close();void ackofstream fi1e2;char si5;char s25 = 'a','c','k',' !'char s;file2.open(file2. txt,ios:in);if(file2. failo)cout«文件打开失败! ;exit (0);file2. getlino(sl, 5);if(sl0=s20)cout<<,z发送成功!,<<endl<<endl;cout«,z如果要

6、继续发送,请输入y;n如果发送完毕,请输入n. /z«endl; cin»s;while (s!二'y' &&s!二'n')cout«,z输入错误,请重新输入.,z<<er)dl ;cin»s;if(s='y')cin. ignore(); fflush(stdin);system("cls");buffer (); rece_frame();elsecout<</z发送完毕! /,«endl;void nak()fstrearn fil

7、e2,file3;char si5;char s25 = 'n','a','k',' !'file2. open(file2. txt,ios:in); if(file2. failo)cout«,z文件打开失败! “; exit(0);fi le2. get 1 ine(si, 5);if(sl0=s20)cout«/z帧出错,准备重新发送!z,«endl; buffer ();rece_frame();void timeout()fstream file2;file2. open(file2. t

8、xt", ios:in);if(file2. failo)cout«,'文件打开失败!z,«endl; exit(0);sleep(3000);cout«z,超时!重发"<<endl;buffer ();rece_frame();file2. close();receiver.cpp#includez/receiver. h#includesender.h" #include<fstream. h> void send_ack()fstrcam filei, file2, file3;char ch;f

9、ilel. open(/zfi 1 el. txt", ios: in); if(filel.fa il()cout«/z文件打开失败!'«endl; exit (0);filel. get (ch);if(ch!=null)file2. open("f订e2. txt", ios: :out); if(file2. failo)cout«文件打开失败!/z«endl; exit(0);file2«ack!n;file3. open(z,file3. txt,ios: :out); if (file3. f

10、ail ()cout«z,文件打开失败! z,; exit (0);f ile3. put (ch);filel. close ();file2. close();f订e3. close ();void send_nak()fstream filel, file2;char ch;filel. open("filel. txt", ios: in); if (filel. fail ()cout«"文件打开失败! z,«endl; exit (0);filel. get (ch); if(ch!=null)file2. open(,z

11、file2. txt", ios: :out); if(file2. failo)cout<<"文件打开失败!,«endl; exit (0);file2«,znak!n/z;filel. close();file2. close();void rece frame()int choice;cout"接收端:,z«endl«encll;cout<</zl.ack"<<endl;cout<<"2. nak,z«endl;cout<<z,3.超时,z<<endl;cout«/z请输入选项 cin»choice; cout<<endl;swi tch(choice)case 1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论