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

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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;

文档评论(0)

baa89089 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档