既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
/*此槽函数用于界面上显示的请求次数*/
void Dialog::slotShow()
{
Label2->setText(tr(" 第 %1 次请求完毕。") .arg(++count));
}
#### main.cpp
#include “dialog.h”
#include
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Dialog w;
w.show();
return a.exec();
}
#### timeserver.cpp
#include “timeserver.h”
#include “timethread.h”
#include “dialog.h”
TimeServer::TimeServer(QObject *parent):QTcpServer(parent)
{
dig =(Dialog *)parent;
}
void TimeServer::incomingConnection(qintptr socketDescriptor)
{
/*以返回的套接字描述符socketDescriptor 创建一个工作线程 TimeThread 。*/
TimeThread *thread= new TimeThread(socketDescriptor,0);
/\*将上述创建的线程结束消息函数 finished()关联到槽函数 slotShow()用于显示请求计数 。
* 此操作中,因为信号是跨线程的,所以使用了排队连接方式 。
*/
connect (thread, SIGNAL (finished()), dig, SLOT (slotShow ()));
/\*将上述创建的线程结束消息函数 finished()关联到线程自身的槽函数 deleteLater()用于结束线程 。
* 在此操作中,因为信号是在同 一个线程中的,使用了直接连接方式,故最后一个参数可以省略而使用 Qt 的自动连接选择方式 。
* 另外,由于工作线程中存在网络事件,所以不能被外界线程销毁,这里使用了延迟销毁函数 deleteLater()保证由工作线程自身销毁 。
*/
connect (thread, SIGNAL (finished()) , thread, SLOT(deleteLater()),Qt::DirectConnection);<