1、在Qt当中,多线程环境下,信号槽分别是在什么样的线程中执行?如何控制?
参考答案:
通过connect(...)第5个参数控制信号槽执行所在线程
connect(...)它的连接方式:队列连接、自动连接和直接连接
- 队列连接 Qt::QueuedConnection
- 自动连接 Qt::AutoConnection
- 直接连接 Qt::DirectConnection
2、在Qt开发当中,UDP协议当中的UdpSocket通讯流程?
参考答案:
在Qt当中提供QUdpSocket类来进行UDP数据报发送和接收数据(IP地址和端口)。
流程:
A创建QUdpSocket套接字对象---》B如果需要接收数据,必须绑定端口--->C发送数据使用writeDatagram,接收数据使用readDataGram
3、在Qt开发当中,TCP协议通讯流程
参考答案:
- 服务器端:创建QTcpServer对象---》监听list(IP地址和端口)--》等待客户端连接成功后发送newConnect信号---》直接在newConnection信号槽函数中,调用nextPendingConnection函数获取新的连接QTcpSocket对象----》连接QTcpSocket对象的readRead信号---》在readRead信号槽函数使用read接收数据---》调用write函数来发送数据
- 客户端:创建QTcpSocket对象---》当对象与服务器连接成功时会发送connected信号---》调用函数connectToHost连接服务(IP地址和端口)---》connected信号的槽函数开始发送数据---》使用write发送数据,使用read函数接收数据。
4、Qt 信号槽机制及其优点与缺点
- 信号:所谓信号槽(观察者模式),信号的本质就是事件。信号展现方式就是函数,当某一事件发生之后,则发出一个信号(Signal)
- 槽:就是对应信号响应函数,槽就是一个函数,槽函数与普通函数区别:槽函数可以与一个信号关联,当信号被射时,关联的槽函数被自动执行处理。信号和槽关联使用的是QObject::connect()函数进行实现。


最低0.47元/天 解锁文章
5303

被折叠的 条评论
为什么被折叠?



