如何将Qt的TCP通信实现改写为一个支持长尾词的?

2026-04-18 15:043阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1359个文字,预计阅读时间需要6分钟。

如何将Qt的TCP通信实现改写为一个支持长尾词的?

本文分享了基于Qt的TCP通信的具体实现代码,供大家参考。

一、TCP介绍TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的可靠传输协议,广泛应用于网络通信。协议规定通信双方必须先建立连接,然后才能进行数据传输。

二、协议角色TCP协议规定通信的双方分别是服务端和客户端。服务端负责监听端口,等待客户端的连接请求;客户端负责发起连接请求,与服务端建立连接。

三、代码示例以下是一个简单的TCP通信示例:

cpp// 服务端代码#include #include

QTcpServer *server;

void setupServer(){ server=new QTcpServer(); server->listen(QHostAddress::Any, 12345); connect(server, &QTcpServer::newConnection, this, &Server::handleNewConnection);}

void Server::handleNewConnection(){ QTcpSocket *clientSocket=server->nextPendingConnection(); connect(clientSocket, &QTcpSocket::readyRead, this, &Server::handleReadyRead);}

void Server::handleReadyRead(){ QTcpSocket *clientSocket=qobject_cast(sender()); if (clientSocket) { QByteArray data=clientSocket->readAll(); qDebug() << Received:

// 客户端代码#include

QTcpSocket *socket;

void setupClient(){ socket=new QTcpSocket(); socket->connectToHost(QHostAddress::LocalHost, 12345); connect(socket, &QTcpSocket::connected, this, &Client::handleConnected);}

void Client::handleConnected(){ qDebug()

void Client::handleDisconnected(){ qDebug() << Disconnected from server;}

以上代码展示了如何使用Qt实现TCP通信。服务端监听12345端口,客户端连接到本地主机12345端口。客户端发送数据,服务端接收并回显数据。

本文实例为大家分享了基于Qt的TCP实现通信的具体代码,供大家参考,具体内容如下

一、tcp介绍

TCP是面向连接的可靠传输的协议,协议规定通信的双方是服务端和客户端的两个角色:
服务端:负责监听网络端口,等待客户端的连接,用连接的socket完成信息的交互;
客户端:负责每次连接的发起,建立连接后才可以进行通信;

二、界面设计

服务器端

客户端

三、具体程序设计

(1)服务器端设计

1、建立一个工程,工程名为tcpserver,类名为server。在.pro文件中加入如下代码并保存。

QT       += network

2、进入server.h,添加类的前置声明

class QTcpServer; //QTcpServer类的前置声明 class QTcpSocket;   //QTcpSocket类的前置声明

添加私有对象指针

QTcpServer *tcpServer;          //添加QTcpServer私有对象指针 QTcpSocket *socket;             //添加QTcpSocket私有对象指针

添加私有槽声明

如何将Qt的TCP通信实现改写为一个支持长尾词的?

 void tcpServer_connect();       //连接函数  void read_data();               //读取从client发来的信息  void disconnected();            //断开连接  void on_sendButton_clicked();   //发送数据函数

3、转到server.cpp文件中

添加头文件#include,然后编写构造函数构造函数

Server::Server(QWidget *parent) :            //构造函数     QDialog(parent),     ui(new Ui::Server) {     ui->setupUi(this);     tcpServer = new QTcpServer(this);                                             //创建对象     if(!tcpServer->listen(QHostAddress::LocalHost,6666))                          //调用listen监听到来的连接,一旦有客户端连接到服务器,就发射newConnection信号     {         qDebug()<<tcpServer->errorString();         close();     }     ui->sendButton->setEnabled(false);                                            // 设置按钮初始值值为false状态,即不可用     connect(tcpServer,&QTcpServer::newConnection,this,&Server::tcpServer_connect);//将newConnection信号与槽函数连接起来 }

槽函数

//发送数据槽函数 void Server::on_sendButton_clicked() {     socket->write(ui->sendText->toPlainText().toLocal8Bit());      //通过write函数发送数据     socket->flush();     ui->sendText->clear(); } //确认连接 void Server::tcpServer_connect() {     socket=tcpServer->nextPendingConnection();     QObject::connect(socket,&QTcpSocket::readyRead,this,&Server::read_data);    //当接收缓冲区有信号到来时,产生readyRead信号     QObject::connect(socket,&QTcpSocket::disconnected,this,&Server::disconnected);//当接收到dinconnected信号时,执行disconnected函数     ui->sendButton->setEnabled(true);         //按钮设置为有效     ui->label->setText(tr("连接成功!")); } //读取客户端发送的数据 void Server::read_data() {     QByteArray buffer=socket->readAll();          //读取的数据放入QByteArray对象中     ui->recText->append(QString::fromLocal8Bit(buffer));       //将数据显示出来 } void Server::disconnected() {     ui->sendButton->setEnabled(false);        //断开连接后按钮值设置为无效 }

(2)客户端设计

1、建立一个工程,工程名为tcpclient,类名为client。在.pro文件中加入如下代码并保存。

QT       += network

2、进入client.h,添加类的前置声明

class QTcpSocket;     //QTcpSocket类的前置声明

定义一个套接字对象指针

QTcpSocket *tcpSocket;       //定义一个套接字对象指针

添加私有槽函数声明

 void readData();                 //读取函数  void discon();                   //断开连接  void on_connectButton_clicked(); //连接按钮槽函数  void on_sendButton_clicked();    //发送按钮槽函数

3、转到client.cpp,

添加头文件#include,并编写构造函数

Client::Client(QWidget *parent) :     QDialog(parent),     ui(new Ui::Client) {     ui->setupUi(this);     tcpSocket = new QTcpSocket(this);          //定义套接字对象     //关联信号到自定义的槽上     QObject::connect(tcpSocket,&QTcpSocket::readyRead,this,&Client::readData);          //有接收数据时,执行读函数     QObject::connect(tcpSocket,&QTcpSocket::disconnected,this,&Client::discon);     ui->sendButton->setEnabled(false); }

槽函数

void Client::discon() {     ui->sendButton->setEnabled(false);     ui->connectButton->setText(tr("取消连接")); } //点击连接按钮,开始创建连接 void Client::on_connectButton_clicked() {     if(ui->connectButton->text()==tr("连接"))     {         tcpSocket->abort();         tcpSocket->connectToHost(ui->hostLineEdit->text(),ui->portLineEdit->text().toInt());//连接到指定主机的端口         if(!tcpSocket->waitForConnected(30000))                                             //超时连接失败         {             qDebug()<<"Connection failed!";             return;         }         qDebug()<<"Connection successfully!";         ui->connectButton->setText("取消连接");         ui->sendButton->setEnabled(true);     }     else     {         tcpSocket->disconnectFromHost();         ui->connectButton->setText("连接");         ui->sendButton->setEnabled(false);     } } //点击发送数据 void Client::on_sendButton_clicked() {     QString sendData=ui->sendText->toPlainText();                                           //发送数据为文本框的的内容     tcpSocket->write(sendData.toLocal8Bit());     tcpSocket->flush();     ui->sendText->clear(); }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自由互联。

本文共计1359个文字,预计阅读时间需要6分钟。

如何将Qt的TCP通信实现改写为一个支持长尾词的?

本文分享了基于Qt的TCP通信的具体实现代码,供大家参考。

一、TCP介绍TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的可靠传输协议,广泛应用于网络通信。协议规定通信双方必须先建立连接,然后才能进行数据传输。

二、协议角色TCP协议规定通信的双方分别是服务端和客户端。服务端负责监听端口,等待客户端的连接请求;客户端负责发起连接请求,与服务端建立连接。

三、代码示例以下是一个简单的TCP通信示例:

cpp// 服务端代码#include #include

QTcpServer *server;

void setupServer(){ server=new QTcpServer(); server->listen(QHostAddress::Any, 12345); connect(server, &QTcpServer::newConnection, this, &Server::handleNewConnection);}

void Server::handleNewConnection(){ QTcpSocket *clientSocket=server->nextPendingConnection(); connect(clientSocket, &QTcpSocket::readyRead, this, &Server::handleReadyRead);}

void Server::handleReadyRead(){ QTcpSocket *clientSocket=qobject_cast(sender()); if (clientSocket) { QByteArray data=clientSocket->readAll(); qDebug() << Received:

// 客户端代码#include

QTcpSocket *socket;

void setupClient(){ socket=new QTcpSocket(); socket->connectToHost(QHostAddress::LocalHost, 12345); connect(socket, &QTcpSocket::connected, this, &Client::handleConnected);}

void Client::handleConnected(){ qDebug()

void Client::handleDisconnected(){ qDebug() << Disconnected from server;}

以上代码展示了如何使用Qt实现TCP通信。服务端监听12345端口,客户端连接到本地主机12345端口。客户端发送数据,服务端接收并回显数据。

本文实例为大家分享了基于Qt的TCP实现通信的具体代码,供大家参考,具体内容如下

一、tcp介绍

TCP是面向连接的可靠传输的协议,协议规定通信的双方是服务端和客户端的两个角色:
服务端:负责监听网络端口,等待客户端的连接,用连接的socket完成信息的交互;
客户端:负责每次连接的发起,建立连接后才可以进行通信;

二、界面设计

服务器端

客户端

三、具体程序设计

(1)服务器端设计

1、建立一个工程,工程名为tcpserver,类名为server。在.pro文件中加入如下代码并保存。

QT       += network

2、进入server.h,添加类的前置声明

class QTcpServer; //QTcpServer类的前置声明 class QTcpSocket;   //QTcpSocket类的前置声明

添加私有对象指针

QTcpServer *tcpServer;          //添加QTcpServer私有对象指针 QTcpSocket *socket;             //添加QTcpSocket私有对象指针

添加私有槽声明

如何将Qt的TCP通信实现改写为一个支持长尾词的?

 void tcpServer_connect();       //连接函数  void read_data();               //读取从client发来的信息  void disconnected();            //断开连接  void on_sendButton_clicked();   //发送数据函数

3、转到server.cpp文件中

添加头文件#include,然后编写构造函数构造函数

Server::Server(QWidget *parent) :            //构造函数     QDialog(parent),     ui(new Ui::Server) {     ui->setupUi(this);     tcpServer = new QTcpServer(this);                                             //创建对象     if(!tcpServer->listen(QHostAddress::LocalHost,6666))                          //调用listen监听到来的连接,一旦有客户端连接到服务器,就发射newConnection信号     {         qDebug()<<tcpServer->errorString();         close();     }     ui->sendButton->setEnabled(false);                                            // 设置按钮初始值值为false状态,即不可用     connect(tcpServer,&QTcpServer::newConnection,this,&Server::tcpServer_connect);//将newConnection信号与槽函数连接起来 }

槽函数

//发送数据槽函数 void Server::on_sendButton_clicked() {     socket->write(ui->sendText->toPlainText().toLocal8Bit());      //通过write函数发送数据     socket->flush();     ui->sendText->clear(); } //确认连接 void Server::tcpServer_connect() {     socket=tcpServer->nextPendingConnection();     QObject::connect(socket,&QTcpSocket::readyRead,this,&Server::read_data);    //当接收缓冲区有信号到来时,产生readyRead信号     QObject::connect(socket,&QTcpSocket::disconnected,this,&Server::disconnected);//当接收到dinconnected信号时,执行disconnected函数     ui->sendButton->setEnabled(true);         //按钮设置为有效     ui->label->setText(tr("连接成功!")); } //读取客户端发送的数据 void Server::read_data() {     QByteArray buffer=socket->readAll();          //读取的数据放入QByteArray对象中     ui->recText->append(QString::fromLocal8Bit(buffer));       //将数据显示出来 } void Server::disconnected() {     ui->sendButton->setEnabled(false);        //断开连接后按钮值设置为无效 }

(2)客户端设计

1、建立一个工程,工程名为tcpclient,类名为client。在.pro文件中加入如下代码并保存。

QT       += network

2、进入client.h,添加类的前置声明

class QTcpSocket;     //QTcpSocket类的前置声明

定义一个套接字对象指针

QTcpSocket *tcpSocket;       //定义一个套接字对象指针

添加私有槽函数声明

 void readData();                 //读取函数  void discon();                   //断开连接  void on_connectButton_clicked(); //连接按钮槽函数  void on_sendButton_clicked();    //发送按钮槽函数

3、转到client.cpp,

添加头文件#include,并编写构造函数

Client::Client(QWidget *parent) :     QDialog(parent),     ui(new Ui::Client) {     ui->setupUi(this);     tcpSocket = new QTcpSocket(this);          //定义套接字对象     //关联信号到自定义的槽上     QObject::connect(tcpSocket,&QTcpSocket::readyRead,this,&Client::readData);          //有接收数据时,执行读函数     QObject::connect(tcpSocket,&QTcpSocket::disconnected,this,&Client::discon);     ui->sendButton->setEnabled(false); }

槽函数

void Client::discon() {     ui->sendButton->setEnabled(false);     ui->connectButton->setText(tr("取消连接")); } //点击连接按钮,开始创建连接 void Client::on_connectButton_clicked() {     if(ui->connectButton->text()==tr("连接"))     {         tcpSocket->abort();         tcpSocket->connectToHost(ui->hostLineEdit->text(),ui->portLineEdit->text().toInt());//连接到指定主机的端口         if(!tcpSocket->waitForConnected(30000))                                             //超时连接失败         {             qDebug()<<"Connection failed!";             return;         }         qDebug()<<"Connection successfully!";         ui->connectButton->setText("取消连接");         ui->sendButton->setEnabled(true);     }     else     {         tcpSocket->disconnectFromHost();         ui->connectButton->setText("连接");         ui->sendButton->setEnabled(false);     } } //点击发送数据 void Client::on_sendButton_clicked() {     QString sendData=ui->sendText->toPlainText();                                           //发送数据为文本框的的内容     tcpSocket->write(sendData.toLocal8Bit());     tcpSocket->flush();     ui->sendText->clear(); }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自由互联。