QT Creatrt 5.1.1 无法调用QUdpSocket

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
 
#include <QMainWindow>
#include <QUdpSocket>
 
namespace Ui {
class MainWindow;
}
 
class MainWindow : public QMainWindow
{
    Q_OBJECT
 
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
 
private:
    Ui::MainWindow *ui;
public:
    QUdpSocket *socket;
};
 
#endif // MAINWINDOW_H


#include "mainwindow.h"
#include "ui_mainwindow.h"
 
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    socket = new QUdpSocket(this);
}
 
MainWindow::~MainWindow()
{
    delete ui;
}

编译时会提示QUdpSocket : No such file or directory;


解决方法: 打开 .pro 文件,增加  QT += newwork 如下: 即可解决问题;


QT       += core gui
QT       += network
 
 
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
 
TARGET = untitled
TEMPLATE = app
 
 
SOURCES += main.cpp\
        mainwindow.cpp
 
HEADERS  += mainwindow.h
 
FORMS    += mainwindow.ui



  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
C++ 和 Qt 都提供了对 UDP socket 的支持。下面是一个简单的示例,展示了如何使用 Qt 中的 QUdpSocket 类发送和接收数据。 发送端代码: ```cpp #include <QtNetwork> int main() { QUdpSocket udpSocket; QByteArray data = "Hello, world!"; udpSocket.writeDatagram(data, QHostAddress::Broadcast, 12345); return 0; } ``` 接收端代码: ```cpp #include <QtNetwork> int main() { QUdpSocket udpSocket; udpSocket.bind(QHostAddress::Any, 12345); while (udpSocket.waitForReadyRead()) { QByteArray datagram; datagram.resize(udpSocket.pendingDatagramSize()); udpSocket.readDatagram(datagram.data(), datagram.size()); qDebug() << "Received: " << datagram; } return 0; } ``` 这个例子中,发送端将一个字符串 "Hello, world!" 发送到本地局域网内的所有设备。接收端监听端口 12345,等待数据到来。当有数据到来时,接收端会输出收到的数据。注意,在这个例子中,发送端和接收端都在同一台机器上,因此可以使用广播地址发送数据。 要在 Qt 中使用 UDP socket,必须包含头文件 `QUdpSocket`,并创建一个 `QUdpSocket` 对象。发送数据时,使用 `writeDatagram()` 方法;接收数据时,使用 `readDatagram()` 方法。在接收数据之前,必须先调用 `bind()` 方法,指定要监听的端口和 IP 地址。 需要注意的是,UDP 是无连接的,因此发送数据时不需要建立连接,只需要指定目标地址和端口号即可。但是,这也意味着 UDP 的数据传输是不可靠的,因为数据包可能会在传输过程中丢失或乱序。因此,在使用 UDP 时,需要考虑数据丢失和乱序的情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值