QT 概述

简介: QT 概述

Qt是一款跨平台的C++应用程序开发框架,由挪威的Trolltech公司(现已被Digia收购)开发和维护。它提供了丰富的工具和库,使开发者能够轻松地创建各种类型的图形界面应用程序、嵌入式系统,音视频流媒体播放器和其他软件项目。Qt框架可以在多个操作系统上运行,包括Windows、macOS、Linux以及一些移动平台如Android和iOS。它被广泛应用于软件开发领域,特别适合构建用户友好的图形化界面。

优秀的Qt工程师应该具备以下技术:

  1. C++编程:Qt是基于C++开发的,熟练掌握C++语言特性和面向对象编程思想对于Qt开发至关重要。
  2. Qt框架:深入理解Qt框架的各种模块、类和功能,包括界面设计、信号与槽机制、事件处理等。
  3. 跨平台开发:了解不同平台(如Windows、macOS、Linux)下的开发特性和API,并能够编写可移植的代码。
  4. 图形界面设计:熟悉Qt提供的UI设计工具,如Qt Designer,能够设计出美观且用户友好的界面。
  5. 数据库操作:掌握Qt提供的数据库访问模块(如Qt SQL),能够进行数据库连接、查询和操作。
  6. 多线程编程:了解多线程编程的基本原理,并能够使用Qt提供的多线程支持来实现并发处理。
  7. 网络通信:熟悉网络编程相关知识,掌握Qt网络模块(如Qt Network)进行网络通信开发。
  8. 调试与性能优化:具备良好的调试技巧和分析问题能力,在开发过程中能够定位并解决各种bug,并进行性能优化。
  9. 版本控制:熟练使用版本控制工具(如Git),能够进行团队协作和代码管理。

今天就简要的介绍一下关于QT  network方面的文章

1.TCP/IP(Transmission Control Protocol)传输控制协议:全双工的 基于字节流的一种通信协议  分别具有TCP三次握手和四次握手的原则

2.Udp:

UDP(User Datagram Protocol)是一种面向无连接的传输层协议。与TCP相比,UDP不提供可靠的数据传输和流控制机制,而是以简洁高效为目标。UDP在网络通信中常用于实时性要求较高的应用场景,如音视频传输、实时游戏等。

UDP以数据报(Datagram)为单位进行通信,每个数据报都独立发送,并没有建立持久的连接。它使用简单的首部格式包含源端口号和目标端口号信息,并且没有拥塞控制、重传机制等复杂功能。因此,在发送数据时不能保证其可靠性、顺序性或完整性,也不会进行丢失数据的重新传输。

3.http/https

HTTP(Hypertext Transfer Protocol)是一种应用层协议,用于在客户端和服务器之间传输超文本数据。它是基于TCP/IP协议的,采用请求-响应模型。

4.Websocket

WebSocket是一种在客户端和服务器之间实现全双工通信的协议。它建立在HTTP协议基础上,通过使用标准化的握手过程,在客户端和服务器之间创建持久性的连接。

5.Ftp

FTP(File Transfer Protocol)是一种用于在网络上进行文件传输的协议。它允许用户通过客户端和服务器之间建立连接,进行文件上传、下载和管理。

1.TCP/IP的使用

#include <QtNetwork>
#include <QObject>
#include <QTcpSocket>//实现TCP/IP的通信类
class TcpClient : public QObject
{
    Q_OBJECT
public:
    TcpClient(QObject *parent = nullptr) : QObject(parent)
    {
        connect(&socket, SIGNAL(connected()), this, SLOT(connected()));
        connect(&socket, SIGNAL(disconnected()), this, SLOT(disconnected()));
        connect(&socket, SIGNAL(readyRead()), this, SLOT(readyRead()));
    }
public slots:
    void connectToServer(const QString& ipAddress, quint16 port)
    {
        socket.connectToHost(ipAddress, port);
    }
    void connected()
    {
        qDebug() << "Connected to server";
        // 发送数据给服务器
        socket.write("Hello Server!");
        // 读取服务器返回的数据
        socket.flush();
    }
    void disconnected()
    {
        qDebug() << "Disconnected from server";
    }
    void readyRead()
    {
        QByteArray data = socket.readAll();
        qDebug() << "Received data from server:" << data;
    }
private:
    QTcpSocket socket;
};
int main(int argc, char *argv[])
{
   QApplication app(argc, argv);
   TcpClient client;
   client.connectToServer("127.0.0.1", 1234); // 连接到服务器,IP地址和端口号根据实际情况修改
   return app.exec();
}

2 .UDP

#include <QCoreApplication>
#include <QUdpSocket>//实现UDP通信类
int main(int argc, char *argv[])
{
    QCoreApplication app(argc, argv);
    QUdpSocket socket;
    
    // 绑定本地端口
    if (!socket.bind(QHostAddress::Any, 1234)) {
        qDebug() << "Failed to bind socket";
        return -1;
    }
    qDebug() << "Listening for UDP packets on port" << socket.localPort();
    
    while (true) {
        // 接收数据报
        QByteArray buffer;
        buffer.resize(socket.pendingDatagramSize());
        
        QHostAddress senderAddress;
        quint16 senderPort;
        socket.readDatagram(buffer.data(), buffer.size(), &senderAddress, &senderPort);
        
        qDebug() << "Received data from" << senderAddress.toString() << ":" << senderPort;
        qDebug() << "Data:" << buffer;
        // 回复数据报
        QByteArray responseData = "Hello Client!";
        
        socket.writeDatagram(responseData, senderAddress, senderPort);
    }
    return app.exec();
}

至于http/https  Websocket Ftp 这些模块 小编想在以后的文章再分享  今天就到这里了 欢迎大家来提出宝贵的建议

对了 在这里小编想分享一下课程 这个课程质量还行 欢迎大家收听:https://xxetb.xetslk.com/s/2PjJ3T

相关文章
|
7月前
【Qt 学习笔记】按钮实现helloworld | 信号与槽概述
【Qt 学习笔记】按钮实现helloworld | 信号与槽概述
88 0
20 QT - 布局管理器概述
20 QT - 布局管理器概述
57 0
|
Unix Linux 定位技术
01 QT - 概述
01 QT - 概述
75 0
15 QT - 对话框QDialog概述
15 QT - 对话框QDialog概述
55 0
|
7月前
|
开发框架 数据可视化 前端开发
【Qt 学习笔记】Qt控件概述
【Qt 学习笔记】Qt控件概述
108 0
|
7月前
|
存储 数据可视化 测试技术
[Qt5] QGraphics图形视图框架概述(Item、Scene和View)
[Qt5] QGraphics图形视图框架概述(Item、Scene和View)
1260 0
|
网络协议 网络安全
30 QT - 文件系统概述
30 QT - 文件系统概述
50 0
|
Unix Linux C++
QT概述--QT5
Qt是一个跨平台的C++图形用户界面应用程序框架。它为应用程序开发者提供建立艺术级图形用户界面所需的所有功能。
147 0
|
存储 数据可视化 前端开发
Python Qt GUI设计:UI界面可视化组件、属性概述(基础篇—4)
Python Qt GUI设计:UI界面可视化组件、属性概述(基础篇—4)
Python Qt GUI设计:UI界面可视化组件、属性概述(基础篇—4)
|
Unix Linux 定位技术
1、QT基础——Qt概述
1、QT基础——Qt概述
344 0

热门文章

最新文章