qt tcp 通信实例

Posted first_semon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了qt tcp 通信实例相关的知识,希望对你有一定的参考价值。

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QHostAddress>
#include <QMessageBox>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    this->socket = new QTcpSocket(this);
}
void MainWindow::on_pushButton_2_clicked(){
    this->socket->close();
}
void MainWindow::on_pushButton_clicked(){
    this->socket->connectToHost("127.0.0.1",80000,QTcpSocket::ReadWrite);
    connect(this->socket,SIGNAL(connected()),this,SLOT(connected()));
}
void MainWindow::connected(){
    QMessageBox::about(this,"notice","connect successful");
    connect(this->socket,SIGNAL(readyRead()),this,SLOT(readyread()));
}
void MainWindow::readyread(){
    QMessageBox::about(this,"notice","ready read");
    QByteArray arr = this->socket->readAll();
    QDataStream *des = new QDataStream(&arr,QIODevice::ReadOnly);//重点
    QString str1;
    QString str2;
    (*des)>>str1>>str2;
    qDebug()<<str1+str2;
    QMessageBox::about(this,"x",str1+str2);

}

MainWindow::~MainWindow()
{
    delete ui;
}

  服务端

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QTcpServer>
#include <QTcpSocket>
#include <QMessageBox>
#include <QByteArray>
#include <QString>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    this->socket = nullptr;
    this->server = new QTcpServer(this);
    this->server->listen(QHostAddress::Any,80000);
    QObject::connect(this->server,SIGNAL(newConnection()),this,SLOT(newConnect()));
}
void MainWindow::newConnect(){
    this->socket = this->server->nextPendingConnection();
    QMessageBox::about(this,"notice","new connect");
    connect(this->socket,SIGNAL(readyRead()),this,SLOT(ReceiveData()));
}
void MainWindow::ReceiveData(){
    QByteArray arr = this->socket->readAll();
    QDataStream dst(arr);
    QString str1;
    QString str2;
    dst>>str1>>str2;
    qDebug()<<str1<<str2;
}
void MainWindow::on_pushButton_clicked(){
    QString str = this->ui->lineEdit->text();
    QByteArray arr;
    QDataStream dst(&arr,QIODevice::ReadWrite);
    dst<<QString("message:")<<str;
    this->socket->write(arr);
}
void MainWindow::on_pushButton_2_clicked(){
    this->socket->close();
}

MainWindow::~MainWindow()
{
    delete ui;
}

  

以上是关于qt tcp 通信实例的主要内容,如果未能解决你的问题,请参考以下文章

qt的tcp通信 服务器和客户端读写数据的问题

qt 之 TCP 通信代码及解释

[osg][osgEarth]基于qt代码实现:TCP|UDP与飞行模拟软件JSBSim的通信,现实模型飞行!

QT创建TCP Socket通信

解决Qt Tcp通信传输中文字符乱码问题

基于QT的TCP通信服务