既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)
// 创建QUdpSocket对象
QUdpSocket *udpSocket = new QUdpSocket(this);
// 绑定地址和端口号
udpSocket->bind(QHostAddress::LocalHost, 8888);
// 定义一个定时器
QTimer *timer = new QTimer(this);
// 设置定时器的间隔时间
timer->setInterval(1000);
// 连接定时器的信号和槽
connect(timer, &QTimer::timeout, this, &Widget::receiveData);
// 启动定时器
timer->start();
// 定义接收数据的槽函数
void Widget::receiveData()
{
// 判断是否有可读的数据报
while(udpSocket->hasPendingDatagrams())
{
// 定义一个数据报大小
qint64 size = udpSocket->pendingDatagramSize();
// 定义一个字节数组
QByteArray array = QByteArray(size, 0);
// 读取数据报
udpSocket->readDatagram(array.data(), size);
// 显示数据报内容
ui->textEdit->append(array);
}
}
// 创建QUdpSocket对象
QUdpSocket *udpSocket = new QUdpSocket(this);
// 绑定地址和端口号
udpSocket->bind(QHostAddress::LocalHost, 8888);
// 连接readyRead信号和槽函数
connect(udpSocket, &QUdpSocket::readyRead, this, &Widget::receiveData);
// 定义接收数据的槽函数
void Widget::receiveData()
{
// 判断是否有可读的数据报
while(udpSocket->hasPendingDatagrams())
{
// 定义一个数据报大小
qint64 size = udpSocket->pendingDatagramSize();
// 定义一个字节数组
QByteArray array = QByteArray(size, 0);
// 读取数据报
udpSocket->readDatagram(array.data(), size);
// 显示数据报内容
ui->textEdit->append(array);
}
}
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)
取:vip1024c (备注嵌入式)**