zoukankan      html  css  js  c++  java
  • 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;
    }
    

      

    作者:first_semon
             
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。如有问题,欢迎交流
  • 相关阅读:
    Java面试题集(七)--Spring常见面试问题【重要】
    Java面试题集(六)
    qt4.8.4安装以及64位程序编译方法
    页面跳转动画设置方法
    Lua环境配置 windows + VS
    Oracle触发器(trigger):view,schema,database
    java课程设计(计算器)
    数据结构 练习 19-活动选择问题的实现(动态规划 和 贪心)
    网页在Safari快速滚动和回弹的原理: -webkit-overflow-scrolling : touch;的实现
    如何打开Nib文件
  • 原文地址:https://www.cnblogs.com/first-semon/p/6925185.html
Copyright © 2011-2022 走看看