赞
踩
1:QT控制台不能用定时器所以用线程
2:本次用QT自带的QThread有问题,改用C++的线程。代码如下:
头文件中生命线程函数定义:
static void thread_function(void*);
CPP文件中加如下代码:
#include <iostream>
#include <thread>
void classname::thread_function(void* pVoid)
{
std::cout << "thread function\n";
classname* pThis = (classname*)pVoid;
while(true)
{
qDebug()<<"thread_function";
if (pThis->_pSCStatusTcp->tcpSocket() && pThis->_pSCStatusTcp->tcpSocket()->state()==QAbstractSocket::ConnectedState
/*&& pMainWindow->isOnLine*/ )
{
if(pThis->_port == TCP_STATUS)
{ } }
QThread::msleep(2000);
}
}
3:TCP用的是 QTcpSocket 出现再调用QTcpSocket::write()函数后,数据不能发送到目标端口。解决方法是调用QTcpSocket::flush() 函数
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。