Qt C++局域网聊天(一)

Qt C++实现局域网聊天

本人作为一个Qt c++萌新,需要一些实战项目练练手,我就使用qt实现了一个局域网聊天小程序,在同一个局域网内的两个进程通过同一个端口进行通信,目前只实现了聊天,文件传输需要后续项目实现。

一、准备

需要c++基础知识,以及qt的基础。这个程序是在Ubuntu环境下编写并测试的,当然Qt作为一个跨平台C++图形用户界面应用程序开发框架,其跨平台特性是非常优秀的。

二、开始

1、安装Qt5,目前官方最新的版本是Qt5.11.2,Qtcreator4.7.6。

选择qt-opensource-linux-x64-5.11.2.run,然后在下载目录下,./qt-opensource-linux-x64-5.11.2.run进行安装,需要创建账号,一般都会安装qt5和qtcreator,然后我安装的是qt5.11.1。qtcreator4.6.2
在这里插入图片描述
2、代码
(1)新建一个widget项目
在这里插入图片描述
(2)、添加一个c++类,并继承自QDialog,类似于这样。在这里插入图片描述
这个类是实现的登录框,下图是类的细节。
在这里插入图片描述在这里插入图片描述在这里插入图片描述
先检查网络,如果连网,那么就可以登录。
在这里插入图片描述
在这里插入图片描述
lookupHost()函数,将结果给QhostInfo,此处是使用的百度地址。
①okBtnClicked():
在这里插入图片描述
(3)在widget类里面实现聊天。
①这是主界面 在这里插入图片描述
②类的细节
在这里插入图片描述
4. 全新的 **KaTeX数学公式** 语法;
③ 代码:
这是在构造函数中的connect,upd使用bind之前登录使用的port,使用shareAddress和ReuseAddressHint实现地址和端口的重用。
在这里插入图片描述
这是用户进入之后,用户列表添加用户,使用的是QTableWidgetItem
在这里插入图片描述
这是用户离开处理,通过退出按钮来触发,如果当前用户大于等于2才退出。
在这里插入图片描述
在这里插入图片描述
下图是发送和接收函数,
在这里插入图片描述
在这里插入图片描述
三、最后
最终运行效果如图
在这里插入图片描述
登录后进行聊天
在这里插入图片描述
然后是退出
在这里插入图片描述 四、结语 大致就这样了,这是一个基于UDP的聊天程序,本来是要实现文件传输的,但文件传输应当使用TCP,所以放在后续项目实现。