qt udp 只创建服务端链接

在Qt中,创建一个UDP服务端链接主要涉及到使用QUdpSocket类来监听一个端口,并接收来自客户端的数据报。以下是一个简单的UDP服务端示例,它展示了如何创建一个UDP套接字并监听端口以接收数据。

#include <QUdpSocket>  
#include <QCoreApplication>  
#include <QDebug>  
  
class UdpServer : public QObject  
{  
    Q_OBJECT  
public:  
    UdpServer(QObject *parent = nullptr) : QObject(parent)  
    {  
        udpSocket = new QUdpSocket(this);  
  
        // 绑定端口以监听传入的UDP数据报  
        const quint16 port = 12345;  
        if (!udpSocket->bind(QHostAddress::Any, port)) {  
            qDebug() << "Failed to bind port" << port;  
            return;  
        }  
  
        qDebug() << "Server is listening on port" << port;  
  
        // 连接信号以处理接收到的数据报  
        connect(udpSocket, &QUdpSocket::readyRead, this, &UdpServer::readPendingDatagrams);  
    }  
  
    ~UdpServer()  
    {  
        udpSocket->deleteLater();  
    }  
  
private slots:  
    void readPendingDatagrams()  
    {  
        while (udpSocket->hasPendingDatagrams()) {  
            QByteArray datagram;  
            datagram.resize(udpSocket->pendingDatagramSize());  
            QHostAddress sender;  
            quint16 senderPort;  
  
            // 读取数据报  
            udpSocket->readDatagram(datagram.data(), datagram.size(), &sender, &senderPort);  
  
            // 处理接收到的数据  
            qDebug() << "Received datagram:" << datagram << "from" << sender.toString() << "port" << senderPort;  
        }  
    }  
  
private:  
    QUdpSocket *udpSocket;  
};  
  
int main(int argc, char *argv[])  
{  
    QCoreApplication a(argc, argv);  
  
    UdpServer server;  
  
    return a.exec();  
}  
  
#include "main.moc"

在这个示例中,我们创建了一个UdpServer类,它有一个QUdpSocket成员变量。在构造函数中,我们将套接字绑定到一个端口上,并连接了readyRead()信号到一个槽函数,以便在接收到数据报时进行处理。

readPendingDatagrams()槽函数会循环读取所有待处理的数据报,并输出它们的内容以及发送者的地址和端口号。

最后,在main()函数中,我们创建了UdpServer类的一个实例,并启动了Qt的事件循环。这样,服务器就会开始监听指定的端口,并等待接收来自客户端的数据报。

相关推荐

  1. qt udp 创建服务

    2024-07-12 13:30:03       26 阅读
  2. Nestjs 微服务实战 - 动态微服务创建

    2024-07-12 13:30:03       54 阅读
  3. Netty服务接收TCP数据

    2024-07-12 13:30:03       18 阅读
  4. 创建

    2024-07-12 13:30:03       50 阅读
  5. UDP Ping程序实现--第1关:Ping服务创建UDP套

    2024-07-12 13:30:03       61 阅读
  6. netty udp创建服务+客户

    2024-07-12 13:30:03       25 阅读
  7. netty创建tcp服务+客户

    2024-07-12 13:30:03       20 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 13:30:03       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 13:30:03       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 13:30:03       62 阅读
  4. Python语言-面向对象

    2024-07-12 13:30:03       72 阅读

热门阅读

  1. 开发不认可bug策略

    2024-07-12 13:30:03       22 阅读
  2. 深入理解sklearn中的模型参数优化技术

    2024-07-12 13:30:03       23 阅读
  3. Android C++系列:Linux守护进程

    2024-07-12 13:30:03       22 阅读
  4. hive中reverse函数

    2024-07-12 13:30:03       21 阅读
  5. 03-NoSQL之Redis配置与优化

    2024-07-12 13:30:03       16 阅读
  6. 编程是学什么:探索编程世界的四大核心领域

    2024-07-12 13:30:03       21 阅读
  7. npm error code 1

    2024-07-12 13:30:03       19 阅读
  8. npm link,npm unlink调试本地开发npm包

    2024-07-12 13:30:03       19 阅读
  9. Dubbo之SPI、Adaptive机制详解

    2024-07-12 13:30:03       23 阅读
  10. linux上mmm和mm指令的区别

    2024-07-12 13:30:03       24 阅读
  11. docker 常用命令

    2024-07-12 13:30:03       26 阅读
  12. Redis的五种数据类型 #系统架构设计师#

    2024-07-12 13:30:03       28 阅读