QT之TCP通信
2018-01-06 17:22
337 查看
QT中可以通过TCP协议让服务器和客户端之间行通信。所以下面我就围绕服务器和客户端来写。
这是我么写服务器和客户端的具体流程:
A、服务器:
B、客户端
我们需要调用到的头文件有两个:
我们先要在工程文件中加入network
QT += core gui network
下面我们来看看服务器程序步骤:
1、初始化服务器server对象
mServer = new QTcpServer();
2、启动监听服务器
mServer->listen(QHostAddress::Any,9988);//9988为端口号
3、当有客户端链接时候会发送newConnection信号,触发槽函数接受链接(得到一个与客户端通信的套接字QTcpSocket)
connect(mServer,SIGNAL(newConnection()),this,SLOT(new_client()));
mSocket = mServer->nextPendingConnection();//与客户端通信的套接字
4、发送数据
mSocket->write(msg.toUtf8());
5、读数据当客户端有数据来,QTcpSocket对象就会发送readyRead信号,关联槽函数读取数据
connect(mSocket,SIGNAL(readyRead()),this,SLOT(read_client_data()));
6、连接多个客户端
//可以实现同时读取多个客户端发送过来的消息
QTcpSocket obj = (QTcpSocket)sender();
7、检测掉线
connect(mSocket,SIGNAL(disconnected()),this,SLOT(client_dis())); //检测掉线信号
下面是服务器的实现的具体代码:
1 #include “tcpserver.h”
2 #include “ui_tcpserver.h”
3 #include
4 TcpServer::TcpServer(QWidget *parent) :
5 QMainWindow(parent),
6 ui(new Ui::TcpServer)
7 {
8 ui->setupUi(this);
9 //初始化服务器server对象
10 mServer = new QTcpServer();
11 //关联客户端连接信号newConnection
12 connect(mServer,SIGNAL(newConnection()),this,SLOT(new_client())); //连接客户端
13 //启动服务器监听
14 mServer->listen(QHostAddress::Any,9988);
15
16 }
17
18 TcpServer::~TcpServer()
19 {
20 delete ui;
21 }
22
23 void TcpServer::new_client()
24 {
25 qDebug()<<”新客户段连接”;
26 mSocket = mServer->nextPendingConnection();//与客户端通信的套接字
27 //关联接收客户端数据信号readyRead信号(客户端有数据就会发readyRead信号)
28 connect(mSocket,SIGNAL(readyRead()),this,SLOT(read_client_data()));
29 //检测掉线信号
30 connect(mSocket,SIGNAL(disconnected()),this,SLOT(client_dis()));
31
32 }
33
34 void TcpServer::read_client_data()
35 {
36 //可以实现同时读取多个客户端发送过来的消息
37 QTcpSocket obj = (QTcpSocket)sender();
38 QString msg = obj->readAll();
39 qDebug()<
这是我么写服务器和客户端的具体流程:
A、服务器:
1.创建QTcpServer对象 2.启动服务器(监听)调用成员方法listen(QHostAddress::Any,端口号) 3.当有客户端链接时候会发送newConnection信号,触发槽函数接受链接(得到一个与客户端通信的套接字QTcpSocket) 4.QTcpsocket发送数据用成员方法write, 5.读数据当客户端有数据来,QTcpSocket对象就会发送readyRead信号,关联槽函数读取数据
B、客户端
1.创建QTcpSocket对象 2.链接服务器connectToHost(QHostAddress("ip"),端口号) 3.QTcpsocket发送数据用成员方法write, 4.读数据当对方有数据来,QTcpSocket对象就会发送readyRead信号,关联槽函数读取数据
我们需要调用到的头文件有两个:
include
include
我们先要在工程文件中加入networkQT += core gui network
下面我们来看看服务器程序步骤:
1、初始化服务器server对象
mServer = new QTcpServer();
2、启动监听服务器
mServer->listen(QHostAddress::Any,9988);//9988为端口号
3、当有客户端链接时候会发送newConnection信号,触发槽函数接受链接(得到一个与客户端通信的套接字QTcpSocket)
connect(mServer,SIGNAL(newConnection()),this,SLOT(new_client()));
mSocket = mServer->nextPendingConnection();//与客户端通信的套接字
4、发送数据
mSocket->write(msg.toUtf8());
5、读数据当客户端有数据来,QTcpSocket对象就会发送readyRead信号,关联槽函数读取数据
connect(mSocket,SIGNAL(readyRead()),this,SLOT(read_client_data()));
6、连接多个客户端
//可以实现同时读取多个客户端发送过来的消息
QTcpSocket obj = (QTcpSocket)sender();
7、检测掉线
connect(mSocket,SIGNAL(disconnected()),this,SLOT(client_dis())); //检测掉线信号
下面是服务器的实现的具体代码:
1 #include “tcpserver.h”
2 #include “ui_tcpserver.h”
3 #include
4 TcpServer::TcpServer(QWidget *parent) :
5 QMainWindow(parent),
6 ui(new Ui::TcpServer)
7 {
8 ui->setupUi(this);
9 //初始化服务器server对象
10 mServer = new QTcpServer();
11 //关联客户端连接信号newConnection
12 connect(mServer,SIGNAL(newConnection()),this,SLOT(new_client())); //连接客户端
13 //启动服务器监听
14 mServer->listen(QHostAddress::Any,9988);
15
16 }
17
18 TcpServer::~TcpServer()
19 {
20 delete ui;
21 }
22
23 void TcpServer::new_client()
24 {
25 qDebug()<<”新客户段连接”;
26 mSocket = mServer->nextPendingConnection();//与客户端通信的套接字
27 //关联接收客户端数据信号readyRead信号(客户端有数据就会发readyRead信号)
28 connect(mSocket,SIGNAL(readyRead()),this,SLOT(read_client_data()));
29 //检测掉线信号
30 connect(mSocket,SIGNAL(disconnected()),this,SLOT(client_dis()));
31
32 }
33
34 void TcpServer::read_client_data()
35 {
36 //可以实现同时读取多个客户端发送过来的消息
37 QTcpSocket obj = (QTcpSocket)sender();
38 QString msg = obj->readAll();
39 qDebug()<
相关文章推荐
- Qt 简单的 tcp socket 通信流程
- qt 之 TCP 通信代码及解释
- QT5界面程序和VS程序的TCP/IP通信,发送数组、结构体等
- Qt TCP通信,多线程服务器端
- Qt开发:TCP和UDP网络通信
- QT中TCP/UDP通信数据的组织
- QT 简单的网络通信(tcp ,udp)
- QT中TCP/UDP通信数据的组织
- QT 线程池 + TCP 小试(二)实现通信功能
- [原][osg][osgEarth]基于qt代码实现:TCP|UDP与飞行模拟软件JSBSim的通信,现实模型飞行!
- TCP/UDP通信编程在Qt中的实现方法
- QT基础(八)----TCP通信 & UDP通信
- Qt中的TCP通信
- Qt-网络与通信-TCP版本聊天程序
- QT 简单 TCP 通信,发送数据到服务器
- QT tcp Socket 通信开发
- qt实现串口,UDP,TCP与嵌入式通信上位机软件
- QT 线程池 + TCP 小试(二)实现通信功能
- Qt tcp/ip 通信
- unity开发:Qt C++与unity之间TCP网络通信