QT5.3无法自动调用incomingConnection函数的问题(4.7没有这个问题)
最近将qt4.7的一个工程移到5.3,遇到了几个麻烦事,主要是这个incomingConnection监听后无法自动调用的问题,在4.7上是完全没有问题的,到了5.3就不行,网上也查了下,网友们都是放出问题,然而都没有写出解决。
1.一步解决
我之前是这样写的:
![](https://common.cnblogs.com/images/copycode.gif)
void TFTPxServer::incomingConnection(int socketDescriptor)
{
qDebug() << "incomingConnection..."; TFTPxThread *thread = new TFTPxThread(socketDescriptor);
//deleteLater会释放线程
connect(thread, SIGNAL(finished()), thread, SLOT(deleteLater())); thread->start();
} int TFTPxServer::startListen()//通过调用这个函数达到自动进入incomingConnection开启新线程,然而在QT5.3这并没有什么卵用。
{
if(!this->listen(QHostAddress::Any, TFTPX_PORT))
{
m_strErrMsg = QString("TFTPxServer Listen Fail.");
return T_SOCKET_LISTEN_FAIL;
} qDebug() << "listen success."; return T_SUCCESS;
}
![](https://common.cnblogs.com/images/copycode.gif)
后来我尝试了下不用内部函数去监听,而是用TFTPxServer的对象直接监听,把上面的startListen()干掉,外部直接这样就可以了:
![](https://common.cnblogs.com/images/copycode.gif)
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this); serverInit();
}
![](https://common.cnblogs.com/images/copycode.gif)
![](https://common.cnblogs.com/images/copycode.gif)
int MainWindow::serverInit()
{
m_server = new TFTPxServer(this); if(!m_server->listen(QHostAddress::Any, TFTPX_PORT))
{
ui->TextBrowseServerStatus->append("后台服务器已启动,监听失败!!!");
return T_SOCKET_LISTEN_FAIL;
}
return T_SUCCESS;
}
![](https://common.cnblogs.com/images/copycode.gif)
大家也可以参考自带的demo:C:\Qt\Qt5.3.2\Examples\Qt-5.3\network\threadedfortuneserver可以查看下
http://www.cnblogs.com/luoxiang/p/4730215.html
QT5.3无法自动调用incomingConnection函数的问题(4.7没有这个问题)的更多相关文章
- QT5.3无法自动调用incomingConnection函数的问题
最近将qt4.7的一个工程移到5.3,遇到了几个麻烦事,主要是这个incomingConnection监听后无法自动调用的问题,在4.7上是完全没有问题的,到了5.3就不行,网上也查了下,网友们都是放 ...
- PHP 命名空间以及自动加载(自动调用的函数,来include文件)
这篇文章的目的是记录 1. php中的自动加载函数 __autoload(), 和 spl_autoload_register()函数, 2 .php中命名空间的使用. 一.当不使用命名空间的时候 a ...
- jQuery在页面加载的时候自动调用某个函数的方法
第一种:$(document).ready(function(){ func(xxx)//执行函数}); 第二种:$(function(){ func(xxx)//执行函数}); 第三种:jQuery ...
- [UE4]C++调用蓝图函数:BlueprintImplementableEvent函数说明符用法
用BlueprintImplementableEvent标明的函数在C++代码中不需要有方法体,方法体在蓝图中实现. 用法: 1,现在C++头文件中定义函数名 UFUNCTION(BlueprintI ...
- php自动加载函数
含义:将函数注册到SPL __autoload函数栈中.如果该栈中的函数尚未激活,则激活它们. 先看__autoload 函数 printit.class.php <?php class PRI ...
- Delphi - Windows系统下,Delphi调用API函数和7z.dll动态库,自动把文件压缩成.tar.gz格式的文件
项目背景 应欧美客户需求,需要将文件压缩成.tar.gz格式的文件,并上传给客户端SFTP服务器. 你懂的,7-Zip软件的显著特点是文件越大压缩比越高,在Linux系统上相当于我们Windows系统 ...
- Object之魔术函数__toString() 直接输出对象引用时自动调用
__toString()是快速获取对象的字符串信息的便捷方式 在直接输出对象引用时自动调用的方法. __toString()的作用 当我们调试程序时,需要知道是否得出正确的数据.比如打印一个对象时,看 ...
- 20180901 JavaScript闭包和匿名函数自动调用
引用: 1. JavaScript闭包_by runoob 2. JS中(function(){xxx})这么写是什么意思? (一)闭包是可以访问上一层函数作用域里变量的函数,即便上一层函数已经关闭. ...
- paintEvent(QPaintEvent*)是系统自动调用的
qt中函数paintEvent(QPaintEvent*)是被系统自动调用. paintEvent(QPaintEvent *)函数是QWidget类中的虚函数,用于ui的绘制,会在多种情况下被其他函 ...
随机推荐
- NSArray的排序
1.自定义方法排序: NSArray *array = [NSArray arrayWithObjects:", nil]; NSArray *array2 = [array sortedA ...
- js之基本包装类型
为了便于操作“基本类型值”,JS 提供了 三个 特殊的引用类型:Boolean.Number.String.这些类型和其他引用类型相似,但同时 也具备 与各自基本类型相应的特殊行为. 实际上:每当读取 ...
- 团队项目(NABC分析)
我们团队开发的是<校园导航>软件 (1)N(Need需求) 我们的团队主要考虑到我们学校没有自己的校园导航,有时会给同学及参观人员带来不便,又看到好多学校都有自己的导航,所以就从这个需求方 ...
- CPU大小端判断
两种方式:1.通过指针 2.通过联合体,联合体里面的数据都是按顺序存储的,而且不论联合体里面有多少数据类型,联合体长度是最长的数据类型的长度.不论初始化多少联合体里面的数据,有效的是最 ...
- 最小二乘法(least squares method)
一.背景 号到北大去听hulu的讲座<推荐系统和计算广告在视频行业应用>,想到能见到传说中的项亮大神,特地拿了本<推荐系统实践>求签名.讲座开始,主讲人先问了下哪些同学有机器学 ...
- android开发 解决启动页空白或黑屏问题
遇到的情况: app启动时进入启动页时出现白屏页,然后大概一秒之后就出现了背景图片. 原因:app启动时加载的是windows背景,之后再加载布局文件的,所以开始的黑屏/白屏就是windows的背景颜 ...
- SQL Server性能优化(1)使用SET函数
在一切开始之前,先看下微软的建议:在系统的整体性能优化里面, TSQL优化优先级并不是最高的. 本文包括四部分: SET STATISTICS TIME ON SET STATISTICS IO SE ...
- 宠物AI(个人觉得有问题)
//宠物AI流程 .刚开始添加宠物 Monster被动State:EnumMonster被NULL MonsterStat:EnumPet跟随 .附近有怪物就改成攻击模式(相关的收尾工作) void ...
- 获取iframe中的元素
父窗口中获取iframe中的元素 var ifr = document.getElementById('suggustion').contentWindow.document.body; 在ifram ...
- 用Time Machine做更换电脑工具
简介: Time Machine这个工具,是直接备份硬盘上的内容.所以,它是直接有备份系统的. 准备: 1.准备一个移动硬盘,存贮空间大于你需要备份系统空间 操作流程: 1. 用Disk Utilit ...