Thread线程中创建QTcpSocket

本文承接上一篇博文,Qt线程创建,本文记录在线程中创建socket 套接字,连接服务器进行编程.

/**********************************************************************************************
* ThreadRecvData.cpp
* 描述:本线程类主要功能实现从服务器接收数据.
* 作者:xhome
* 时间:2020/5/8
*********************************************************************************************/#include "ThreadRecvData.h"
#include <QDebug>
#include <QtNetWork>
#include "GroundStation.h"ThreadRecvData::ThreadRecvData(QObject *parent) :QThread(parent)
{mStopFlag = false;qDebug() << "ThreadRecvData start ok.";}void ThreadRecvData::run()
{//1.创建tcp 客户端类, 服务器由ros2_msgmiddleware 本地搭建.端口10001mTcpClient = new QTcpSocket;connect(mTcpClient, SIGNAL(readyRead()), this, SLOT(readDataSlot()), Qt::DirectConnection);mTcpClient->connectToHost("127.0.0.1", 10001);//2.超时等待连接30sif (!mTcpClient->waitForConnected(30000)){qDebug() << __FILE__ << " , " << __FUNCTION__ << ", " << __LINE__ << " failed to connect server. -------";return emit errorCodeSignal(ERROR_CODE_CONNECT_SERVER_TIMEOUT);}else {qDebug() << "";qDebug() << " ThreadRecvData ---> client connect server ok. ";}//3.连接成功发送确认标志位.QString client_msg_id(SOCK_MSG_TYPE::SOCK_MSG_SWARM_MSG);
//  mTcpClient->write("1", 2);mTcpClient->write(client_msg_id.toUtf8());mTcpClient->flush();//阻塞线程结束.exec();//while (!m_stopFlag)//{//   QThread::sleep(1);//    qDebug() << "ThreadRecvData +++++++++++";//}}ThreadRecvData::~ThreadRecvData()
{}void ThreadRecvData::stop()
{mStopFlag = true;
}/*** 功能:从sock中读取消息.* 作者:xhome* 时间:2020/5/8*/
void ThreadRecvData::readDataSlot()
{//解析数据.UavSituation_t uavSituation;QByteArray buffer = mTcpClient->readAll();QString  sbuffer(buffer);qDebug() << "sbuffer:" << sbuffer;QStringList list = sbuffer.split(",");for (int i = 0; i < list.size(); i++) {qDebug() << list[i];}
}

19.Qt中Thread线程中创建QTcpSocket相关推荐

  1. C#中的线程(中)-线程同步

    1.同步要领 下面的表格列展了.NET对协调或同步线程动作的可用的工具:                       简易阻止方法 构成 目的 Sleep 阻止给定的时间周期 Join 等待另一个线程 ...

  2. JAVA中stacksize是什么意思_【Java Thread StackSize】如何理解Java中Thread构造器中的stackSize的默认值为0?...

    Thred的stackSize默认值 e-mail:rolltion.zhang@foxmail.com 前言:为什么要研究默认值 在Java和Java开发框架中,我们经常会遇到一系列的默认值,尽管他 ...

  3. python 结束子线程并保证工作完成_python3中在线程中结束工作进程的方法

    我想知道在python3中结束工作线程的方法.在 如果你看这个来自this question的代码示例,worker中有一个while True循环,我看到的是{}被调用了.在 为什么这个工人会自动结 ...

  4. java方法中 thread,Java中的線程Thread方法之---join()

    上一篇我們說到了Thread中的stop方法,這一篇我們再來看一下方法join的使用,那么方法Join是干啥用的? 簡單回答,同步,如何同步? 怎么實現的? 下面將逐個回答. join方法從字面上的意 ...

  5. Java多线程-线程的创建(Thread类的基本使用)

    文章目录 一. 线程和Thread类 1. 线程和Thread类 1.1 Thread类的构造方法 1.2 启用线程的相关方法 2. 创建第一个Java多线程程序 3. 使用Runnable对象创建线 ...

  6. java线程(Thread)的创建与常用方法

    目录 Process与Thread 线程的创建 继承Thread 2. 实现Runnable 3. 实现Callable 通过线程下载图片的例子 实现Runnable接口 抢票的例子: 龟兔赛跑: 实 ...

  7. Qt使用 std::thread 线程插入数据到 QTableWidget

    Qt使用 std::thread 线程插入数据到 QTableWidget中 一.实现效果 二.主要代码 1. ThreadTable.h 头文件 2. ThreadTable.cpp 源文件 3. ...

  8. 在线程中调用SaveFileDialog

    在线程中调用SaveFileDialog 在多线程编程中,有时候可能需要在单独线程中执行某些操作.例如,调用SaveFileDialog类保存文件.首先,我们在Main方法中创建了一个新线程,并将其指 ...

  9. Qt对话框的事件循环分析(子线程中不能创建UI窗体分析)

    重要: GUI线程和辅助线程 如前所述,每个程序在启动时都有一个线程.这个线程被称为"主线程"(在Qt应用程序中也称为"GUI线程").Qt GUI必须在这个线 ...

最新文章

  1. 掌握 MySQL 这 19 个骚操作,效率至少提高3倍
  2. ajax无刷新留言板远吗,基于jquery实现ajax无刷新评论
  3. centos solr 部署到 tomcat 上
  4. linux格式化大于2t硬盘分区,linux下大于2tb硬盘格式化及挂载,linux下大于2t的分区方法,linux gpt分区表 管理 自动挂载分区...
  5. api 微信内置浏览器js_多端开发框架uni-app入坑指南,一套代码适用微信、头条等小程序...
  6. 注册表屏蔽IE9更新
  7. PyCharm快捷键总结
  8. 树莓派控制sg90舵机 驱动 Python详细教程|徐奥雯
  9. 【C++】关于strlen函数使用的坑(与socket sendto函数配合使用)
  10. WinDynamicDesktop下载慢解决方法
  11. 影片剪辑app android,4款经典的手机影片剪辑App
  12. 远程控制工具——Centos7上向日葵安装使用(xy)
  13. 电商物流仓储流程图模板分享
  14. 车载诊断系统-OBD
  15. java anon_shiro中的anon,authc啥意思
  16. 饿了么“短平快”创新项目的架构取舍之道
  17. 微风:UI设计需要学习哪些软件?
  18. 详解MYSQL数据库密码的加密方式及破解方法(1)
  19. 小扎、马斯克宣战ChatGPT!Meta和推特组建顶级AI团队,硅谷硝烟四起
  20. linux下socket通信,server和client简单例子

热门文章

  1. java kill 线程_java – 如何在等待中杀死正在运行的线程?
  2. jquery回显select标签
  3. python中文人名识别(使用hanlp,LTP,LAC)
  4. jupyter 功能插件
  5. jstl处理栏目与子栏目_深圳北易:网站SEO优化如何提高网站栏目页排名
  6. all, any, some查询
  7. bzoj 4196 树链剖分 模板
  8. APIO2010巡逻(树上带权直径)
  9. 又一家药企IPO被拒,原因竟然是……
  10. 设计模式学习笔记(1)——单例模式