




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一章第一章 功能需求分析功能需求分析.1 1.1 课程设计目的及意义.1 1.2 系统实现的具体功能.1 1.3 主要特点.2 1.4 winsock编程原理和方法.2 第二章第二章 系统设计系统设计.3 2.1 总体方案.3 第三章第三章 技术实现技术实现.4 3.1 程序界面.4 3.2 主要控件说明.5 3.3 部分代码及说明.6 3.3.1 主站winsock1_dataarrival事件.6 3.3.2 从站winsock1_dataarrival事件.6 3.3.3 巡回检测代码块.7 3.3.4 主站主动向从站发送数据模块.7 3.3.5 从站异常报告模块.8 3.3.6 灯的
2、实现模块.8 第四章第四章 总结和体会总结和体会.9 附录附录.10 主站代码截图.10 从站代码截图.11 1 第一章第一章 功能需求分析功能需求分析 1.1 课程设计目的及意义课程设计目的及意义 本次的课程设计是通过主从式通信来了解和掌握简单的通信协议,是作为本学 期学习 tcp/ip 协议族的一次实际应用,有助于深入的了解通信协议的具体实现 方式。这次的课程设计加深对所学知识的了解和掌握,比如 tcp 协议和 udp 协议的所用场合和不同之处;学习到对巡回检测系统的设计方法;同时学习了 解和掌握对 vb 开发环境的一些基本的简单的常识,当然也增强了动手能力, 为今后的设计做铺垫。 1.2
3、 系统实现的具体功能系统实现的具体功能 tcp 是一种面向连接的通信协议,udp(用户数据文报协议)是一个无连 接协议。在工业应用中,为了提高效率通常采用 udp 作为实时数据传输协议。 因为 udp 不提供数据包分组、组装和不能对数据包进行排序,无连接,处理速 度快,因此效率相对比较高。 本系统是基于 udp 协议的通信软件设计的巡回检测系统。巡回检测系统能 够实现一些工业系统的自动化,通过该系统提取所需要的实时信息,根据信息 内容做出相应的回应。巡回检测是计算机远程监控系统的一种工作模式。计算 机远程监控系统通常由主站和从站构成,是典型的主从式通信系统。正常情况 下,巡回检测模式采用一问一
4、答的方式进行,当从站发生异常时可主动上报 (例如报警) 。具体要求如下: .设 1 个主站(server)和 5 个从站(client) 。 .系统应设置巡检周期和从站采样时间间隔。 .系统的工作模式为:自动巡检+主动上报。 .主机地址:(主站和从站) ;本地端口号:10000(主站) ;远端 端口号:1000110005(从站) 。 2 .分别设计主站和从站通信程序,同时打开主站和从站的程序时,主站能 够定时巡检从站,从站做出相应的回应,检测到的在主站上显示出来(如灯亮 表示连接上,反之表示断开) 。 1.3 主要特点主要特点 本设计主站是主动呼叫方,主站按周期向各个从站端
5、口发送信息,从站收 到信息后作出应答。当从站发生异常时要主动向主站报告。从站程序可以同时 打开多个。 本系统是使用 vb6.0 编程环境实现的,基于 udp 通信协议的主从式通信。 所使用的控件对象有:标签(label) ,文本框(textbox) ,命令按钮 (command) ,通信(winsock) ,形状(shape) ,定时器(timer) 。 实现从一个窗口跳转到另一个窗口。 1.4 winsock 编程原理和方法编程原理和方法 winsock 控件对用户来说是不可见的,利用 winsock 控件可以与远程计 算机建立连接,并通过用户数据报协议 (udp)或者传输控制协议 (tcp
6、)进行数 据交换。这两种协议都可以用来创建客户与服务器应用程序。本次设计是利用 winsock 控件对象实现基于 udp 通信协议的主从式通信,为了传输数据,首先 要设置客户计算机的 local port 属性。然后,服务器计算机只需将 remote host 设置为客户计算机的 internet 地址,并将 remote port 属性设置为跟客户 计算机的 local port 属性相同的端口,并调用 send data 方法来着手发送信息。 于是,客户计算机使用 data arrival 事件内的 get data 方法来获取已发送的信 息。 主要使用的方法有 send data 方法和
7、 get data 方法,在调用 send data 方 法来着手发送信息时要先设定相同的端口;当传进 unicode 字符串并在网络 上发送出去之前,将转化成 ansi 字符串。get data 方法是获取当前的数据块 并将其存储在变体类型的变量中。通常与 data arrival 事件并用。 3 第二章第二章 系统设计系统设计 2.1 总体方案总体方案 本次设计是实现 1 个主站和 5 个从站的通信,主站的端口号为 10000,1 到 5 号从站的端口为 1000110005。结构如下: 主站每隔一段时间从 1 号从站到 5 号从站依次发送一次巡检信息,从站收 到信息就做出相应的回应,在从
8、站之间还有一定的间隔。流程图如下: 4 第三章第三章 技术实现技术实现 3.1 程序界面程序界面 主站: 5 从站: 6 3.2 主要控件说明主要控件说明 主站中使用了 1 个计时器 timer() 、1 个 winsock 控件和 1 个 command 控 件,其他 textbox 控件和 label 若干 从站使用 1 个 winsock 控件和 1 个 command 控件,其他 textbox 控件和 label 若干, timer 控件:通过引发 timer 事件,timer 控件可以有规律地隔一段时间 执行一次代码。timer 控件用于背景进程中,它是不可见的。 winsock
9、控件:winsock 控件对用户来说是不可见的,利用 winsock 控件 可以与远程计算机建立连接,并通过用户数据报协议 (udp)或者传输控制协议 (tcp)进行数据交换。这两种协议都可以用来创建客户与服务器应用程序。与 timer 控件类似,winsock 控件在运行时是不可见的。主要的用途:创建收 集用户信息的客户端应用程序,并将收集的信息发送到某中央服务器。创建 一个服务器应用程序,作为多个用户的数据的汇入点。创建“聊天”应用程序。 command button 控件:command button 控件可以开始、中断或者结束一 个进程。 textbox 控件:textbox 控件有时
10、也称作编辑字段或者编辑控件,显示设 计时输入的用户输入的、或运行时在代码中赋予控件的信息。 3.3 部分代码及说明部分代码及说明 3.3.1 主站主站 winsock1_dataarrival 事件事件 private sub winsock1_dataarrival (byval bytestotal as long) if bytestotal 2 then dim strdata as string on error resume next winsock1.getdata strdata text2.text = text2.text & chr(13) & chr(10) & str
11、data 7 shape1 (winsock1.remoteport - 10001).fillcolor = &hff00& end if end sub 说明:如果收到的字节大于 2 执行 getdata 并将收到的数据在 text2 文本框 中输出,并将相应的 shape1(winsock1.remoteport - 10001)图形填充为绿色。 3.3.2 从站从站 winsock1_dataarrival 事件事件 private sub winsock2_dataarrival (byval bytestotal as long) if bytestotal 2 then dim
12、strdata as string winsock2.getdata strdata text2.text = text2.text & chr(13) & chr(10) & strdata winsock2.remotehost = winsock2.remoteport = 10000 winsock2.senddata label4.caption & 号站应答 end if end sub 说明:当从站接收到数据大于 2 时执行 getdata 方法,并将接收到的数据 在 text2 中显示,还要在接受到主站发来的数据后向主站发送应答 winsock2.sendd
13、ata label4.caption & 号站应答。 3.3.3 巡回检测代码块巡回检测代码块 private sub timer1_timer () for i = 10001 to 10005 winsock1.remotehost = winsock1.remoteport = i shape1 (winsock1.remoteport - 10001).fillcolor = &h80000008 winsock1.senddata 主站巡检 & i - 10000 & 号站 doevents 8 sleep 200 next i end sub 每隔 timer1
14、.interval 时间执行一次改代码块,每次执行时利用 for 循环将 winsock1.remoteport 设置为从 10001 到 10005 间的数,并且执行 winsock1.senddata 主站巡检 & i - 10000 & 号站向当前端口发送数据。循环 体每执行一次 sleep 200。 3.3.4 主站主动向从站发送数据模块主站主动向从站发送数据模块 private sub command1_click () winsock1.remotehost = winsock1.remoteport = text1.text winsock1.senddata
15、 text3.text text3.text = text1.text = end sub 说明:此代码由 command1_click()事件触发,根据 text1.text 中的用户输 入主动设置 winsock1.remoteport,并发送 text3.text 中用户输入的字符串到相 应的端口,然后清空输入框和端口框的数据。 3.3.5 从站异常报告模块从站异常报告模块 private sub command1_click () winsock2.senddata text3.text text3.text = end sub 说明:由 command1_click()事件触发,点击
16、 command1 后发送 text3.text 中的字符串到主站报警,然后清空输入的数据。 9 3.3.6 灯的实现模块灯的实现模块 在每次循环体执行时将当前端口对应的 shape 填充为黑色 shape1 (winsock1.remoteport - 10001).fillcolor = &h80000008 当收到应答时,将相应的 shape 填充为绿色 shape1 (winsock1.remoteport - 10001).fillcolor = &hff00& 第四章第四章 总结和体会总结和体会 本次课程设计,使用 vb6.0 开发环境来做的,通过一些简单的控件对象来 完成基于 u
17、dp 通信协议的主从式通信的巡回检测和主动上报的程序。本次设计 主要使用的控件是 winsock 控件,winsock 控件是为了连接两台主机的控件, 它主要使用 data arrival 事件来完成连接的。 巡回检测是主站通过 timer 控件来按照一定的时间间隔对从站的主机进行 巡检,来确定是否连接,若连接就显示绿灯,就可以进行数据交流,反之不行。 主动上报就是从站发生异常时主动向主站发送相应的数据,便于主站及时 10 的采取相应的措施来解决异常。但是,主动上报也是有一定的弊端的,当多台 主机同时发生异常,又同时上报的话,就可能产出冲突。主站不能同时受理这 些上报信息。解决这种冲突可以采取分割时间片的方法,为每个从站分配一个 时间片,在相应从站的时间
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 化肥销售合作合同范本
- 包装稻草出售合同范本
- 劳务代理用工合同范本
- 单位汽车借用合同范本
- 代理机构中标合同范本
- 义工合同范本
- 个人对公劳务合同范本
- 与人投资饭店合同范本
- 医院供氧安装合同范例
- 一方婚前贷款买房合同范本
- 护士临床护理组长
- 土建、装饰、维修改造等零星工程施工组织设计技术标
- 高速公路养护作业安全培训内容
- 2024年江苏经贸职业技术学院单招职业适应性测试题库
- 《大白菜种植栽培技》课件
- 北京工业大学《数据挖掘》2023-2024学年第一学期期末试卷
- 2024年物联网安装调试员(中级工)职业资格鉴定考试题库(含答案)
- 标准化机房改造方案
- 珠海市第三人民医院中医智能临床辅助诊疗系统建设方案
- 早产临床诊断与治疗指南
- 工程签证单完整版
评论
0/150
提交评论