基于Linux QT的网络调试助手课设报告.docx
- 文档编号:8992067
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:14
- 大小:537.31KB
基于Linux QT的网络调试助手课设报告.docx
《基于Linux QT的网络调试助手课设报告.docx》由会员分享,可在线阅读,更多相关《基于Linux QT的网络调试助手课设报告.docx(14页珍藏版)》请在冰豆网上搜索。
基于LinuxQT的网络调试助手课设报告
编号:
嵌入式系统综合开发
实训(论文)说明书
题目:
Linux下的网络调试助手
学 院:
计算机科学与工程学院
专业:
计算机科学与技术
学生姓名:
孤狼
学号:
1100310315
指导教师:
2014年12月19日
摘要
本论文主要论述了整个课程设计《Linux下的网络调试助手》的目标任务,以及完成目标任务的设计思路以及最终的解决方案和最终软件实现效果。
本文开篇引言介绍本软件的开发背景,设计这个系统是建立在什么情况下的,以及本系统能处理现实中那些事务。
在需求分析阶段,主要考虑的是本系统具体要求能处理那些现实中哪些事务,有些什么功能,考虑系统的交互性,可行性以及使用哪个开发平台。
在总体设计中,进行结构分析与流程设计。
在详细设计中,介绍软件设计中建立网络连接的Tcp_ip服务端与客户端,数据的接收和发送,字符与十六进制的转换显示,定时重复发送,获取文件数据发送和保存接受数据至文件以及接收发送字节数目的显示。
最后论述开发过程所遇问题和解决方法,软件的测试过程,使用的关键技术和软件特色,最终实现的功能效果。
关键词:
Linux、网络调试助手、TCP_IP、服务端、客户端、发送、接收、UDP
目录
1.绪论1
1.1背景:
1
1.2研究意义:
1
2.软件概述1
2.1软件说明1
2.2功能目标1
3.软件需求分析1
3.1问题描述1
3.2软件的总体需求1
3.3软件的详细需求2
3.4使用环境2
3.5开发编程环境及语言2
3.6可行性分析2
3.7软件总体结构目标要求3
4.软件详细设计3
4.1软件总体结构3
4.2总体设计流程图4
4.3tcpsenersocket服务端设计5
4.4tcpclientsocket客户端设计5
4.5UDP设计5
4.6字符与十六进制转换显示/发送设计5
4.7定时发送设计5
4.8接收数据保存到文件5
4.9发送数据来源自文件5
4.10发送和接受数据字节显示5
4.11数据清零6
4.11停止接收数据6
5.软件测试6
6结束语7
6.1总结7
6.2展望8
谢辞9
参考文献10
1.绪论
1.1背景:
随着科技的蓬勃发展,嵌入式系统也得到了空前的发展应用,于此同时,很多嵌入式系统为了方便系统的调试以及适应互联网的发展与更高的用户需求,需要连接网络,网络不仅可以作为一种嵌入式系统的调试手段,也是嵌入式系统连接外界进行信息交流的一种手段。
在嵌入式系统中,如今当属Linux发展的最好,应用最多。
Linux是一套免费使用和自由传播的类UNIX操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。
它能运行主要的UNIX工具软件、应用程序和网络协议。
它支持32位和64位硬件。
Linux继承了UNIX以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
1.2研究意义:
基于Linux频繁的嵌入式网络编程开发,在测试调试编程阶段,如果有一个好的工具用于调试,将会事半功倍。
在Windows上有很多TCP_IP的网络调试助手,而在Linux系统上却几乎没有,为了方便Linux上的网络调试开发,很有必要设计一个基于Linux下的网络调试助手软件。
2.软件概述
2.1软件说明
该软件是一个基于Linux系统下的网络调试软件,软件用于Linux嵌入式开发人员对TCP_IPUDP等网络配置进行调试测试,以便高效的的进行网络的配置实用。
软件是要实现tcp_ip的服务端、tcp_ip客户端,进行数据的收发显示以便进行网络调试。
2.2功能目标
(1)能够选择TCP协议下的服务端和客户端
(2)能对本地IP地址和端口号进行设置
(3)接收区能选择字符或十六进制显示
(4)接收数据可选择文件保存
(5)发送区能选择发送字符串或十六进制
(6)能设置时间间隔进行自动重复发送
(7)发送数据可来源输入框和文件
(8)有发送和接收字节数显示
3.软件需求分析
3.1问题描述
开发基于Linux下的TCP客户端和服务端可设置的网络调试软件,并实现相关接收和发送的内容。
3.2软件的总体需求
实现TCP客户端和服务端的配置连接,实现数据的接收和发送,字符与十六进制的转换显示,定时重复发送,接收数据保存至文件与发送数据来源与文件,接收和发送字节数的计算显示。
3.3软件的详细需求
(1)打开软件后,能根据需求在下拉列表选择协议下的服务端TCPSener和客户端TCPClient,然后通过Socket类进行网络的链接,连接后一个作为客户一个作为服务,进行相关的通信测试。
(2)能在输入框分别对本地IP地址和端口号进行输入设置,有默认的设置。
(3)接收区能通过一个CheckBox勾选十六进制显示,不勾选默认字符形式显示
(4)接收的数据可通过按钮选择保存到一个文件中,可以使新建或已有文件。
(5)发送区能通过一个CheckBox勾选十六进制发送,不勾选默认字符形式发送。
(6)能通过输入框设置时间间隔,勾选CheckBox进行自动重复发送。
(7)发送数据可来源输入框和打开一个文件的数据进行发送。
(8)通过Lable进行发送和接收字节数显示。
3.4使用环境
Linux操作系统平台,图形界面。
3.5开发编程环境及语言
开发环境:
QTCreator4.7(Linux环境)
QtCreator是跨平台的QtIDE,QtCreator是Qt被Nokia收购后推出的一款新的轻量级集成开发环境(IDE)。
此IDE能够跨平台运行,支持的系统包括Linux(32位及64位)、MacOSX以及Windows。
根据官方描述,QtCreator的设计目标是使开发人员能够利用Qt这个应用程序框架更加快速及轻易的完成开发任务。
使用语言:
QT(C++)
QT是一个1991年由奇趣科技开发的跨平台图形用户界面应用程序开发框架。
广泛用于开发GUI程序,这种情况下又被称为部件工具箱。
也可用于开发非GUI程序,比如控制台工具和服务器。
它是Digia公司的产品。
QT使用标准的C++和特殊的代码生成扩展(称为元对象编译器(MetaObjectCompiler,moc))以及一些宏。
通过语言绑定,其他的编程语言也可以使用QT。
QT是自由且开放源代码的软件,在GNU较宽松公共许可证条款下发布。
所有版本都支持广泛的编译器,包括GCC的C++编译器和VisualStudio。
3.6可行性分析
(1)经济可行性分析
由于本软件开发和运行所要求的硬件(计算机及相关硬件)和软件环境Linux系统和QtCreatorIDE,市场上都容易购买到或从相关网站下载,软件成本主要集中在本开发上,对用户不造成过重的经济负担。
而一旦此软件投入使用,不仅可以减少网络配置调试的工作强度,提高工作效率,而且方便了网络应用的开发,极大限度地方便网络开发人员,而且,目标软件不是很复杂,开发的周期较短,人员经济支出不大,所节省的大量人力、财力产生的效益将远远大于本系统的开发成本,所以从经济方面讲开发此系统是可行的。
(2)技术可行性分析
技术上的可行性分析要考虑现有技术条件能否顺利完成开发工作及将来要采用的硬件和软件技术能否满足用户提出的要求(如计算机的容量、速度等)。
硬件方面目前的电脑是完全支持Linux系统和QtCreatorIDE;开发技术上QTCreator4.7是一个图形界面开发软件,可开发图形界面软件;该开发软件包含TCP相关的Socket网络连的类,直接声明实例化对象即可连接网络。
因此,开发基于LinuxQT下的图形界面网络调试助手是可行的。
(3)操作可行性分析
图形界面下的调试助手只需要选择和输入相关的简单TCP参数,对收发进行一定的设置就可以连接使用,简单方便。
任何网络应用开发人员或者网络配置维护人员均可上手使用。
综上所述,该基于Linux下的网络调试助手软件的开发使用是完全可行的。
3.7软件总体结构目标要求
本软件需要满足以下几个设计目标。
(1)实用性原则:
真正为用户的实际工作服务,按照网络应用开发人员和网络配置维护人员的网络测试需求,设计出使用的网络调试软件。
(2)可靠性原则:
必须为使用者提供可靠的网络连接与相关稳定的服务。
(3)友好性原则:
本软件是方便网络应用开发人员或网络配置维护人员的调试测试用,所以操作上要求简单、方便、快捷,便于用户使用。
(4)可扩展性原则:
采用开发的标准和接口,便于软件向更大的规模和功能扩展。
4.软件详细设计
4.1软件总体结构
本软件具有很多功能模块,包括很多功能函数,各模块之间,各功能函数之间具有紧密的联系;比如数据显示及发送需要建立在网络的连接上,不然就没有意义;定时重复发送需要与定时间隔输入和发送输入框相关;此外各种数据的类型必须有明确的定义。
总体设计分为以下部分:
(1)TCP协议下的服务端(包括端口和ip的设置)
(2)TCP协议下的客户端
(3)UDP协议
(4)接收区(不同进制显示、停止接收、保存至文件)
(5)发送区(不同进制发送、定时发送、从文件取数据)
(6)有发送和接收字节数显示
4.2总体设计流程图
4.3tcpsenersocket服务端设计
本软件采用socket进行通信,通常也称作"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求。
Socket的类型有三种:
流式Socket(SOCK_STREAM)、数据报Socket(SOCK_DGRAM)、原始socket。
流式socket提供可靠的、面向连接的通信流;它使用TCP协议,从而保证了数据传输的正确性和顺序性。
数据报socket定义了一种无连接的服务,数据通过相互独立的报文进行传输,是无序的,并且不保证是可靠、无差错的。
它使用数据报协议UDP。
(3)原始socket允许对底层协议如IP或ICMP进行直接访问,它功能强大但使用较为不便,主要用于一些协议的开发。
4.3.1tcpsenersocket设计
监听客户端连接请求
listen(QHostAddress:
:
Any,port);
新建TcpServerSocket类继承于监听数据接收和断开连接
emitdisconnected(this->socketDescriptor());
Server类包含TcpServerSocket类的对象
TcpServerSocket*tcpServerSocket=newTcpServerSocket(this);
服务端启动,监听指定端口
server=newServer(this,ui->Port_lineEdit->text().toInt());
4.3.2服务端数据发送
调用wirte函数进行数据发送。
4.3.3服务端数据接受
监听readlady进行数据的接收监听。
4.4tcpclientsocket客户端设计
4.4.1客户端启动连接
实例化一个新的socket,请求连接服务器。
接收发送与服务端相似。
4.5UDP设计
4.5.1UDPsocket启动
实例化新的连接对象:
udpSocket=newQUdpSocket(this);
连接:
udpSocket->bind(ui->Port_lineEdit->text().toInt(),QUdpSocket:
:
ShareAddress)
4.6字符与十六进制转换显示/发送设计
利用单选框对十六进制选择,获得标记,编写字符转十六进制的转化函数,用于接收显示及发送;编写十六进制转字符函数,用于来回切换。
4.7定时发送设计
1)定时器线程的启动与关闭
2)定时器到时中断服务
3)定时发送信号与发送槽连接
4.8接收数据保存到文件
4.9发送数据来源自文件
4.10发送和接受数据字节显示
在全局定义字节数变量,并将字节数初始化为0,在发送及接收函数内部累加当前接收字节数计算发送接收字节数和显示。
4.11数据清零
当清零按钮clear,按下之后,在其相应函数下对接收和发送数据的数据清零,同时接收长度发送长度显示为0。
4.11停止接收数据
停止接收主要是同个单选框获得停止接收选择标记,然后判断该标记,如果选择了停止接收,则数据接收函数判断是否接收处理显示。
5.软件测试
系统测试是验证系统正确性的关键,采用不同的数据可以达到不同测试效果,同时测试不同的功能可以完善测试。
以下将从左右滑屏、Ping网测试、发送用户自定义消息来对系统进行测试。
5.2问题2:
UDP连接本机ip时,不能连接发送到对方,只能发送到自己的接收端。
测试如下,实现预期效果。
5.1服务器端数据接收发送:
5.2客户端数据接收发送:
6结束语
6.1总结
以实现基于Linux下的网络调试,在设计功能考虑了各方面的需求,基本上符合一个小型的网络调试助手的开发要求,但这仅是一个小小的软件,还有很多方面需要完善,希望在以后的学习中能够提升。
基本完成课程设计题目要求。
式系统相关课程的学习加上这两周老师的指导,我对设计一个嵌入式软件有了一个比较系统的概念,知道了什么阶段该做需求分析,什么时候总体设计,什么时候详细设计以及实现和测试。
知道了在拿到一个待要解决的问题时,不是马上着手写程序,而是在先完成需求分析、总体设计、详细设计的基础上再考虑实现。
星期的课程设计,刚开始时有点混乱,但基于QT的综合实验设计,有了一定的基础,能够有一个较好的轮廓,做起来也方便。
设计中,我对网络连接及相关知识有了更深的理解,把理论联系实际结合起来,使理论知识得到了应用,同时自己也掌握了知识,同时不懂得能及时的和老师同学沟通,加上自己的亲手设计,使得自己的应用软件更加的熟练,印象更加的深刻,真正的理解所学的知识。
ux下的网络调试助手的设计过程中,我搜寻了比较多的资料,以期望达到更好的标准,使软件更完善,但由于技术的不足,设计出来的软件比较简单,只实现了基本的需求功能,没能进行很好的拓展。
这次的课设是一次锻炼,是好好运用和理解知识的机会,如果只是运用理论知识,是远远不够的,这就要提高自己的能力,了解软件开发的过程,才能受益匪浅,为以后的工作和学习打下基础。
在这次课设中,自己的QT语言和C++语言知识得到了巩固,编程能力也有了一定的提高。
同时也学会了解决问题的方法。
6.2展望
本系统采用的是Socket来与服务器进行通讯的,有着广阔的应用前景与市场前景,希望以后再毕业设计的时候能够完成剩下的全部功能。
在控制与设置方面能够通过图像化的操作来实现,在房间的个数上能够实现根据实际情况动态的增加滑屏的标签,在Socket通讯中希望能够实现与服务器的实时连接。
谢辞
在论文即将完成之际,我要感谢老师同学们对本次实训给予的帮助,在我遇到困难的时候,及时的伸出援手。
在用户界面设计的时候老师给了我思路,同时使得用户界面的设计可以解决本次实训的系统要求。
在代码编写的时候同学们为我提出了许多宝贵的建议,让我深刻了解到了模块化结构化程序设计的原则,与其优势所在。
在一些算法上也给予了较为明确的思路指点。
最后再一次感谢所有在系统设计中曾经帮助过我的良师益友和同学们,以及在系统设计中被我引用或参考的论著的作者,和网络上找到的各种细节难题的解决方法,虽然不能一一罗列但也要感谢你们。
参考文献
1.罗建军朱丹军顾刚刘路放《C++程序设计教程》高等教育出版社
2.JasminBlanchette、MarkSummerfield《C++GUIQT4编程(第二版)》电子工业出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于Linux QT的网络调试助手课设报告 基于 Linux QT 网络 调试 助手 报告