arq实验源码及报告

arq实验源码及报告

ID:30773096

大小:71.50 KB

页数:7页

时间:2019-01-03

arq实验源码及报告_第1页
arq实验源码及报告_第2页
arq实验源码及报告_第3页
arq实验源码及报告_第4页
arq实验源码及报告_第5页
资源描述:

《arq实验源码及报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

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

2、1.ACK—>接收该字符2.NAK—>丢弃3.无反应一〉导致超时将用户选择的结果记录到file2.txt中;接收的字符保存到file3.txt中;pl等待接收方应答:读取f订e2.txt决定下面的操作:1)如果是ACK,则继续接收用户输入;2)如果是NAK,则重传该字符;3)如果超时仍没有新的ACK或NAK,则重传该字符。四、实验中遇到的问题该实验中主要的是对文件的操作,通过对C++的复习,基本没有什么困难,其中比较不好操作的是时间超时的控制,通过在网上查找资料,发现Sleep函数可以设置延迟,这样的话超时模块也

3、可以比较简单的写出来。五、通过实验掌握的内容这次实验主要让我了解到ARQ的实验的工作原理,基本是发送端发送数据,接收端接收数据并确认,发送端接到ACK消息,继续发送,若接收端丢弃或超时,则发送端重发数据sender.h#include#includevoidBuffer();voidAck();voidNak();voidTimeOut();receiver.h#include〈iostreani>#includevoidReceFrame();void

4、Send_Ack();voidSend_Nak();sender,cpp#includez,sender・h〃#include#include#includez/receiver-h〃voidBuffer(){charch;fstroamfilel;filei.open(〃filei.txt",ios::out);if(filel.failO){cout<〈〃文件打开失败!〃;exit(0);}cout<<,z发送端:,z<

5、发送的数据帧:〃;cin>>ch;filel.put(ch);cout«z,数据LL存入缓存。"《cndl;filel.close();}voidAckO{fstreamfi1e2;charsi[5];chars2[5]={'A','C','K','!'};chars;file2.open(〃file2.txt〃,ios::in);if(file2.failO){cout«〃文件打开失败!〃;exit(0);}file2.getlino(sl,5);if(sl[0]==s2[0]){cout<<,z发送成功!,,

6、<

7、hars2[5]={'N','A','K','!'};file2.open(〃file2.txt〃,ios::in);if(file2.failO){cout«,z文件打开失败!“;exit(0);}file2.get1ine(si,5);if(sl[0]==s2[0]){cout«/z帧出错,准备重新发送!z,«endl;Buffer();Rece_Frame();}}voidTimeOut(){fstreamfile2;file2.open(〃file2.txt",ios::in);if(file2.fail

8、O){cout«,'文件打开失败!z,«endl;exit(0);}Sleep(3000);cout«z,超时!重发"<voidSend_Ack()f

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。