当前位置: 首页 > 网络知识

Qt TCP (小型聊天窗口)

时间:2026-01-29 09:27:00

实现的具体功能为:

  1. 服务器端需要主动监听,可以主动断开连接,可以发送信息给客户端
  2. 客户端需要输入主机,端口号,需要主动连接,可以主动断开连接,可以发送信息给服务器端
  3. 服务器端和客户端都能看到聊天记录

服务器端的搭建:

创建一个TCP_Server项目

1.首先在.Pro文件中添加:

QT+=network

ui界面中添加以下控件:

2. tcp_server.h文件

1 #ifndef TCP_SERVER_H 2 #define TCP_SERVER_H 3 4 #include <QWidget> 5 #include<QTcpServer> 6 #include<QTcpSocket> 7 QT_BEGIN_NAMESPACE 8 namespace Ui 9 QT_END_NAMESPACE 10 11 class tcp_server : public QWidget 12 ; 33 #endif // TCP_SERVER_H

3.tcp_serverpp文件

1 #include "tcp_server.h" 2 #include "ui_tcp_server.h" 3 #include<QMessageBox> 4 tcp_server::tcp_server(QWidget *parent) 5 : QWidget(parent) 6 , ui(new Ui::tcp_server) 7 ); 24 connect(socket,&QTcpSocket::disconnected,socket,&QTcpSocket::deleteLater);//断开连接后,删除该套接字 25 } 26 else 27 30 31 }); 32 33 } 34 35 tcp_server::~tcp_server() 36 39 40 41 void tcp_server::on_pushButton_clicked()//listen 42 48 } 49 50 void tcp_server::on_pushButton_3_clicked()//断开连接 51 56 else 57 64 } 65 66 void tcp_server::on_pushButton_2_clicked()//发送数据 67 72 else 73 78 }

客户端的搭建:

创建一个TCP_Client项目

1.pro文件添加

QT+=network

ui界面中添加:

2. tcp_client.h文件

1 #ifndef TCP_CLIENT_H 2 #define TCP_CLIENT_H 3 4 #include <QWidget> 5 #include<QTcpSocket> 6 QT_BEGIN_NAMESPACE 7 namespace Ui 8 QT_END_NAMESPACE 9 10 class tcp_client : public QWidget 11 ; 30 #endif // TCP_CLIENT_H

3.tcp_clientpp文件

1 #include "tcp_client.h" 2 #include "ui_tcp_client.h" 3 #include<QMessageBox> 4 tcp_client::tcp_client(QWidget *parent) 5 : QWidget(parent) 6 , ui(new Ui::tcp_client) 7 ); 16 17 } 18 19 tcp_client::~tcp_client() 20 23 24 25 void tcp_client::on_pushButton_clicked()//连接到服务器 26 30 31 void tcp_client::on_pushButton_2_clicked()//断开 32 36 37 void tcp_client::on_pushButton_3_clicked()//发送 38 45 else 46 49 }

以下为运行过程:

输入主机和端口号然后点击连接,然后点击listen监听

点击yes即可连接

服务器端向客户端发信息:

客户端向服务器端发信息:

点击断开连接,即可断开:



上一篇:QT QChart去掉边缘留白区域
下一篇:Qt QtCharts给QChartView换肤,换背景色添加背景图片
Qt
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器
  • 英特尔第五代 Xeon CPU 来了:详细信息和行业反应
  • 由于云计算放缓引发扩张担忧,甲骨文股价暴跌
  • Web开发状况报告详细介绍可组合架构的优点
  • 如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳
  • 美光在数据中心需求增长后给出了强有力的预测
  • 2027服务器市场价值将接近1960亿美元
  • 生成式人工智能的下一步是什么?
  • 分享在外部存储上安装Ubuntu的5种方法技巧
  • 全球数据中心发展的关键考虑因素
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器

    英特尔第五代 Xeon CPU 来了:详细信息和行业反应

    由于云计算放缓引发扩张担忧,甲骨文股价暴跌

    Web开发状况报告详细介绍可组合架构的优点

    如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳

    美光在数据中心需求增长后给出了强有力的预测

    2027服务器市场价值将接近1960亿美元

    生成式人工智能的下一步是什么?

    分享在外部存储上安装Ubuntu的5种方法技巧

    全球数据中心发展的关键考虑因素