多线程小结和UDP套接口点点知识

本文对比了Qt和Android平台下UI组件及多线程编程的区别,包括对话框、按钮等基本控件的使用,以及多线程、信号量、互斥量等并发控制机制,并介绍了UDP广播在网络编程中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由多线程关联到的类的作用和用法,和android语法很像:
    1,QDialog 对话框基类,新建qt gui工程时需要选择QDialog类。===BaseActivity类
    2,QPushButton 按钮控件。===Button类
(在头文件.h中定义参数时都需要加*,例如:QPushButton *stopbtn)
    3,setWindowTitle(tr("线程"));跳出的对话窗口中标题显示内容为“线程”(调用控件类中的方法时要使用“->”符号,例如:window->addWidget(qpushbutton));
    4,QHBoxLayout  水平布局管理器,动态加载控件时使用。===LinearLayout类
    5,创建一个自定义线程类,首先要继承QThread类,
        代码:class WorkThread :public QThread{Q_OBJECT}; 中括号后边的分号要有。要导入包,#include<QThread>===extends thread
    6,构造函数写法:    
.h文件中
classConsumer:publicQThread
{
public:
Consumer();
};
.cpp文件中:
#include"consumer.h"
Consumer::Consumer(){}
    7,按钮控件点击事件:.h文件中用到的方法是public slots:类型的。===public onclick(View view){}
    8,connect(pushbtn,SLGNAL(onclicked(),this,SLOTS(slotStart()));如果SLOT()函数里边是close()函数,点击pushbtn按钮后直接关闭对话框。
    9,QMutex类(互斥量),异步线程,加锁,用法:mutex.lock();   qDebug("Hello");   qDebug("World");   mutex.unlock();  
    === synchronized {      qDebug("Hello");       qDebug("World");     }  
    10,QSemaphore类(信号量),互斥量只能锁定一次而信号量可以获取多次,它可以用来保护一定数量的同种资源。acquire()函数用于获取n个资源,当没有足够的资源时调用者将被阻塞直到有足够的可用资源。release(n)函数用于释放n个资源。(取该类中的方法用"."符号)。
    11,QWaitCondition(唤醒类) wakeall()。
    12,用到网络编程的时候,QtNetWork需要加在.pro文件里。写法是QT   += network
    13,QUdpSocket(udp套接口接收广播)   ->bind(45454,QUdpSocket::ShareAddress);端口号,QUdpSocket::ShareAddress的作用是声明别的服务也可以绑定这个端口号。
之后如果收到广播就执行slot函数内的操作:connect(receiver,SIGNAL(readyRead()),this,SLOT(processPendingDatagram()));  
        QByteArray datagram;
        datagram.resize(receiver->pendingDatagramSize());
        receiver->readDatagram(datagram.data(),datagram.size());
        ui->label->setText(datagram);得到广播发过来的内容。
    14,QUdpSocket(udp套接口发送广播)
 QByteArray datagram="晨很笨";
    sender->writeDatagram(datagram.data(),datagram.size(),QHostAddress::Broadcast,45454);------------发送的内容,发送的长度,ip,端口号===broadcast

    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值