基于Qt的p2p局域网聊天和文件传输软件
更新时间:2024-05-12 04:14:01 阅读量: 综合文库 文档下载
- qt 局域网聊天推荐度:
- 相关推荐
基于Qt的局域网聊天和文件传输软件设计
摘 要
随着计算机网络技术的飞速发展,人们对于网络的依赖性也越来越大。通过网络的局域网通信也越来越受到人们的喜爱,比如说现在非常流行的QQ局域网通信软件就解决了人们在网络中交流的需求。
基于Qt的P2P局域网聊天和文件传输软件,是基于TCP/IP协议中的TCP和UDP协议完成的一个能够完成局域网通信和传输文件的软件,该软件实现了局域网内的通信,使用该软件作为通信和传输文件的工具,既简单又安全。
关键词:计算机网络, TCP, UDP , 文件传输;
Abstract
With the rapid development of computer network technology, people are more and more dependent on the network. Instant messaging via the Internet has become more and more popular, for example, it is now very popular QQ instant messaging software to solve the needs of people in the network communication.
Based on P2P instant chat and file transfer software is based on TCP / IP protocol in the TCP and UDP protocols to complete a to complete the instant messaging and file transfer software, the software realized the LAN communication, the use of the software as a communication and file transfer tool, which is simple and safe.
Key word:computer network, TCP, UDP , file transfer;
目 录
1 引 言 .......................................................................................................................... 1 1.1 课题背景 ............................................................................................................. 1 1.2 国内外现状 ......................................................................................................... 1 1.3本课题研究的迫切性 .......................................................................................... 1 1.4 本文的主要工作 ................................................................................................. 1 2.需求分析和开发工具 ................................................................................................. 2 2.1 需求分析 ............................................................................................................. 2 2.2 P2P的局域网聊天和文件传输软件的功能 ....................................................... 2 2.3 开发工具 ............................................................................................................. 2 2.4 TCP/UDP工作协议流程 ..................................................................................... 4 3.系统总体结构设计 ..................................................................................................... 6 3.1 基本简介 ............................................................................................................. 6 3.2 系统功能模块设计 ............................................................................................. 6 3.3 功能模块介绍 ..................................................................................................... 6 3.3.1 聊天功能模块 .............................................................................................. 6 3.3.2 文件传输模块 .............................................................................................. 7 4.功能实现 ..................................................................................................................... 9 4.1 系统设计流程 ..................................................................................................... 9 4.1.1 聊天功能的流程设计 .................................................................................. 9 4.1.2 文件传输功能系统实现 ............................................................................ 10 5 结果与分析 ............................................................................................................ 16 参考文献 ...................................................................................................................... 17
1 引 言
1.1 课题背景
网络的发展促进了通信的发中,通信的发展反过来让网络发展的更大更快,通信作为我们日常生活中不可或缺的东西,正在改变着人们的生活。比如说QQ局域网通信软件就为人们的生活和学习带来了极大的方便。但是人们有时需要和与自己同一个局域网内的用户通信而通信的内容不通过公网来保证通信的安全,防止黑客或者一些心怀不轨的人通过非法的手段获取到通信的内容。因为一旦信息泄露了就有可能带来不可估量的损失。在这种情况下,基于Qt的P2P的局域网聊天和文件传输的软件就产生了。
1.2 国内外现状
网络的普及也让一些人获得了获取了更多的信息。通过窃听,篡改,重放等攻击的手机来阻止,或者是窃取别人的有用信息,这种事在一些大型的公司里曾经就发生过。现在一些大型的公司自己会去开发适合自己公司的局域网通信软件来防止此类的安全事件出现,因此基于Qt的P2P的局域网聊天和文件传输的应用开发现在仍然受到关注。
1.3本课题研究的迫切性
基于Qt的P2P的局域网聊天和文件传输软件的实现能够帮助我们了解基于Qt的P2P 的软件的实现原理和过程,为我们以后开发一些大型的P2P的软件提供了技术上的保证。同时该软件能够用于局域网的通信和传输文件,具有一定的实际意义。
1.4 本文的主要工作
本文主要介绍了基于Qt的P2P的局域网聊天和文件传输的软件的实现原理和实现的过程,针对软件的原理和过程进行深入的讲解。同时本文可以作为基于Qt的P2P的局域网聊天和文件传输的软件的使用说明书,通过具体而详细的阐述,让大家更容易的理解基于Qt的P2P的局域网聊天和文件传输的软件的实现原理和实现的过程。
第 1 页
2 需求分析和开发工具
2.1 需求分析
由于国内外的安全现状不容乐观,人们通信的时的信息很容易会被黑获 获取,为了在局域网中安全简单的痛信,人们就开发了基于Qt的P2P的局域网通信和文件传输软件。该软件能够很好地实现在局域网内和其他人通信,从而保证了通信的安全,让人们拥有更加安全和简单的痛信环境。同时,由于该软件是使用C++语言开发,具有平台无关性。能够在不同的操作系统的平台下完成局域网通信和文件传输的功能。
2.2 P2P的局域网聊天和文件传输软件的功能
P2P的局域网聊天和文件传输软件有以下功能:
(1)局域网内点对点通信,
能够同一时间和多个人,在不同的ip和端口上实现通信
(2)简单文件传输
能够传输1M以上的文件 (3)能够在多个平台下实现通信 C++平台无关性
2.3 开发工具
(1)开发语言 C++
C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛;C++支持多种编程范式 --面向对象编程、泛型编程和过程化编程。最新正式标准C++于2014年8月18日公布。其编程领域众广,常用于系统开发,引擎开发等应用领域,是至今为止最受广大程序员受用的最强大编程语言之一,支持类:封装、继承、多态等特性! (2)开发工具 Qt
Qt是一个1991年由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,易于扩展,允许组件编程。2008年,奇趣科技被诺基亚公司收购,QT也因此成为诺基亚旗下
第 2 页
的编程语言工具。2012年,Qt被Digia收购。2014年4月,跨平台集成开发环境Qt Creator 3.1.0正式发布,实现了对于iOS的完全支持,新增WinRT、Beautifier等插件,废弃了无Python接口的GDB调试支持,集成了基于Clang的C/C++代码模块,并对Android支持做出了调整,至此实现了全面支持iOS、Android、WP。它提供给应用程序开发者建立艺术级的图形用户界面所需的所有功能。Qt很容易扩展,并且允许真正地组件编程。基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等图形界 面库和 Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西。
第 3 页
4 功能实现
4.1 系统设计流程
4.1.1 聊天功能的流程设计
采用DUP协议设计局域网聊天功能,在局域网聊天功能中,设计了一个客户端和一个服务端, 在通信建立的时候,通信的发起方首先确认通信的IP地址和Port端口,然后发送消息给服务端。服务端需要在同样的端口上等待发起者的信息。 客户端:
开始 从发送窗口中读入数据 Sendmessage调用UDP DatagramSocket DatagramPacket 调用Send方法发送数据 调用close方法关闭客户端 结束 图4-1 发送端工作流程图
第 9 页
服务端:
开始 DatagramSocket DatagramPacket 调用receive方法接收数据,存入datagram中 是否收到 信息 Y 进入文件 接收区 N 显示内容 调用close方法关闭服务端 结束 图4-2 接收端工作流程图
4.1.2 文件传输功能系统实现
使用TCP协议实现文件传输功能,服务端开始监听,客户端选择建立会话。会话建立成功后,开始选择文件进行传输。在文件传输开始时,由客户端给服务端发送文件,内容为待发送文件名和长度。客户端收到后判断是不是传送的文件,如果是则服务端选择接收文件。然后开始传输文件,文件传输完成后,选择关闭服务器端和客户端。
第 10 页
客户端:
开始 选择文件 发送文件名和文件大小 等待对方接收 是否接收 Y N 发送文件 调用ServerSocket创建服务器端 调用getOutputStream()发送文件 将文件的内容读取到buf中 通过write(buf, 0, read)方法发送文件内容 关闭发送端serversocket和server 结束
图4-3 文件传输客户端工作流程
第 11 页
服务端:
开始 接收文件名和文件大小 显示文件名和大小 是否接收 Y N
创建socket 调用getInputStream()方法接收内容 调用getInputStream发送文件 将文件的内容读取到buf中 将文件写入本地磁盘 关闭客服端 结束
图4-4 文件传输服务端工作流程
第 12 页
4.3 实现
4.3.1聊天交互界面 (1)客户端信息显示
(2)服务端信息显示
第 13 页
(3)历史消息显示
4.3.2 文件传输界面
(1)客户端与服务端建立会话成功 左下角显示:Waiting for file transfer…
第 14 页
(2)打开文件,并选择需要传输文件
(3)点击发送按钮,开始文件传输
第 15 页
5 结果与分析
本系统是在Windows下基于Qt软件使用C++语言进行开发的一款点对点聊天和文件传输软件。综合其他聊天软件的优缺点本系统实现了基本的聊天和传送文件的功能。在设计过程中界面设计使用了Qt图形界面生成工具。Socket套接字用来创建连接,实现通信双方正常连接。综合比较TCP和UDP后,选用UDP协议实现聊天功能设计,选用更安全的面向连接的TCP进行文件传输控制协议。在解决I/O阻塞问题时,选择了占用系统资源较少的线程。本系统最终可以实现点对点的字符串发送和接收,能够实现简单的聊天和文件传输功能。
系统能能够完成一定的功能,但还有很多不完善的地方。由于技术的缺乏和时间的限制本系统在实现功能时存在一些问题,例如系统在信息传输过程中,没有对传输的消息和文件进行加密操作,因为这在网络中传输中是很不安全的。
本系统在实现基本功能的基础上还需要完善一些不足的地方。系统需要添加消息加密和解密模块,来保证传输信息的安全性。图形界面是由图形工具Qt生成,虽然使用Qt提供了很强大的能够很容易搭建的图形界面,但是缺点在于生成的界面有点生硬不够美观,需要改进。以上这些问题都要在以后的工作中逐步解决。
本次课程设计让我学到的不止是专业知识,更学到了那种精益求精、严谨的治学精神,这些都使我受益终生的财富。我要在以后的工作生活中保持和发扬这种精神。
第 16 页
参考文献
[1] 甘刚.Linux/NUIX网络编程[M].北京:中国水利水电出版社,2008. [2] 叶树华.网络编程实用教程[M].北京:人民邮电大学出版社,2010. [3] 杜佳荣, 马建红, 滕振宇.C++网络编程技术与实践[M].北京:清华大学出版社,2008.
第 17 页
正在阅读:
基于Qt的p2p局域网聊天和文件传输软件05-12
心态决定人生:10条平凡却总被忽略的告诫10-15
春游的建议作文450字06-18
叙事药学--践行专业+温度的药学服务路径08-24
清东陵保护区基本情况 - 图文06-28
反义词对对子歌(1)05-18
新产品开发管理程序08-28
电路理论试卷06-12
北语15春《高级听力》()作业3满分答案03-28
2009检验科工作制度08-09
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 和文
- 局域网
- 传输
- 基于
- 聊天
- 软件
- p2p
- 监理单位平行检验方案
- 基于ADS的混合环的设计
- 2014江苏事业单位面试备考:考前实战演练及解析十三
- N-NCS培训手册
- 自汗、盗汗、手足出汗治疗口诀
- 哈佛大学首席天体物理学家惊人结论:没有外星人
- 一至六年级数学知识竞赛通报 - 5 - 图文
- 2018年全国各地中考物理试题电学学计算题汇编(最全)
- 全国2008年10高等教育自学考试环境与资源保护法学试题及和答案
- 激光简介
- 苏教版小学语文第六册第一单元检测试题
- 关于编制板式换热器项目可行性研究报告编制说明
- 2015-2016学年小学三年级数学质量检测试卷分析
- 车联网-物联网在城市交通网络中的应用
- 电除尘维护手册
- windows基本操作
- dojo类机制简介
- 数学二年级下册租船问题的练习题
- 我的砌体结构最终方案
- 2015-2016学年陕西省西安七十中八年级上12月月考数学试卷