首页 > 代码库 > qt tcp 通信实例

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 通信实例