• QT之tcp通信的简单例程


    QT之tcp通信的简单例程

    例1 客户端

    #include   
    #include   
      
    int main(int argc, char *argv[])  
    {  
        QApplication app(argc, argv);  
      
        QTcpSocket socket;  
        socket.connectToHost(QHostAddress::LocalHost, 1234);  
        if (socket.waitForConnected()) {  
            socket.write("Hello, server!");  
            if (socket.waitForBytesWritten()) {  
                if (socket.waitForReadyRead()) {  
                    qDebug() << "Received data:" << socket.readAll();  
                }  
            }  
        }  
      
        return app.exec();  
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    例2 服务端

    #include   
    #include   
    #include   
      
    class MyTcpServer : public QTcpServer  
    {  
        Q_OBJECT  
      
    public:  
        explicit MyTcpServer(QObject *parent = 0) : QTcpServer(parent)  
        {  
            if (!this->listen(QHostAddress::Any, 1234)) {  
                QMessageBox::critical(0, "Server Error", "Unable to start the server:" + this->errorString());  
                exit(EXIT_FAILURE);  
            }  
        }  
      
    protected:  
        void incomingConnection(qintptr socketDescriptor) override  
        {  
            QTcpSocket* socket = new QTcpSocket(this);  
            socket->setSocketDescriptor(socketDescriptor);  
      
            connect(socket, &QTcpSocket::readyRead, this, [socket]() {  
                QByteArray data = socket->readAll();  
                qDebug() << "Received data:" << data;  
                socket->write("Hello, client!");  
            });  
      
            connect(socket, &QTcpSocket::disconnected, this, [socket]() {  
                qDebug() << "Client disconnected:" << socket->peerAddress().toString();  
                socket->deleteLater();  
            });  
        }  
    };  
      
    int main(int argc, char *argv[])  
    {  
        QApplication app(argc, argv);  
        MyTcpServer server;  
        return app.exec();  
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42

    Qt 的 TCP 类(QTcpSocket 和 QTcpServer)创建简单的 TCP 客户端和服务器。在示例 1 中,我们创建了一个 TCP 客户端,连接到本地主机上的端口 1234,并发送一条消息给服务器。在示例 2 中,我们创建了一个 TCP 服务器,监听本地主机上的端口 1234,并在接收到客户端连接时发送一条消息给客户端。这些示例可以作为你开始使用 Qt TCP 通信的基础。

  • 相关阅读:
    生活中是否害怕过机械硬盘出现坏道?
    React(5)-类组件的setState
    服务发现原理分析与源码解读
    测试用例设计方法之:入门试招,等价边界初探
    volvo s60 T4 2021款 使用手册
    what‘s the meaning of rv32imafdc
    Kotlin第二弹:Kotlin基本数据类型
    oracle临时表 WITH AS用法
    doxygen制作接口文档
    数据集笔记:Pems 自行下载数据+python处理
  • 原文地址:https://blog.csdn.net/techenliu/article/details/133385662