C#滑动窗口协议的软件设计与实现(8)
时间:2017-05-30 08:17 来源:毕业论文 作者:毕业论文 点击:次
我的总体思路是:首先用C#语言在VS2010环境下设计一个控制台应用程序,进行调试、实验,最后再根据此模拟程序设计出Windows窗体应用程序。 由于我设计的控制台应用程序是模拟程序,因此我把发送方和接收方设计在同一版面上。它们各自的功能同时在同一版面上实现及显示。在程序代码实现后,我们可以通过在同一版面上的提示输入相关信息,便可得到模拟过程。再通过Windows窗体应用程序将控制台应用程序转化。 虽然只有一个版面,但是发送方和接收方的功能是清晰可见的。根据流程图的实现步骤,我编写了以下的程序代码。 4.3.1 发送方程序 本程序设有四个变量:一是窗口大小变量,二是第一帧序列号变量,三是最近发送的帧变量,四是最近收到的确认帧变量。 long a; int flag, b; sendq_slot sendq_rear = new sendq_slot(); sendq_slot sendp = new sendq_slot(); sendq_slot p3 = new sendq_slot(); sendq_slot p4 = new sendq_slot(); recvq_slot recvp = new recvq_slot(); recvq_slot recvq_rear = new recvq_slot(); recvq_slot p1 = new recvq_slot(); recvq_slot p2 = new recvq_slot(); swqstate1 Swpstate1 = new swqstate1(); //申明一系列的变量 Swpstate1.head = null; //变量初始值为空 Swpstate1.sendq = sendq_rear; if (Swpstate1.sendq == null) Environment.Exit(0); recvq_rear.next = null; System.Console.Write("请输入窗口大小:"); Swpstate1.sws = long.Parse(System.Console.ReadLine()); //输入窗口大小 Swpstate1.rws = Swpstate1.sws; //把窗口大小的值赋给变量 if (Swpstate1.sws > 0) { System.Console.Write("请输入第一帧的序号:"); Swpstate1.hdr.seqnum = long.Parse(System.Console.ReadLine());//输入第一帧序号 (责任编辑:qin) |