QT tcpsocket 在断开后重新连接程序直接崩溃
来源:互联网 发布:易语言软件自动更新 编辑:程序博客网 时间:2024/05/16 07:09
最近再写tcp程序时无意中碰到个问题,tcp客户端断开连接后再重新连接,发送数据直接报错:
ASSERT: "m_buf" in file c:\users\qt\work\qt\qtbase\include\qtcore\5.9.1\qtcore\private\../../../../../src/corelib/io/qiodevice_p.h, line 116
后来定位到发送数据write()函数上,经过调试后发现tcpsocket断开连接后直接触发信号槽重新连接.导致出错,如果手动重新连接则没事.
最后改了信号槽的连接方式就解决。
connect(this,SIGNAL(disconnected()),this,SLOT(connect_server()));
connect(this,SIGNAL(disconnected()),this,SLOT(connect_server()),Qt::QueuedConnection);选择了
Qt::QueuedConnection模式
队列连接:内部通过postEvent实现的。不是实时调用的,槽函数永远在槽函数对象所在的线程中执行。如果信号参数是引用类型,则会另外复制一份的。
信号槽触发后并不是实时调用,给QT时间处理socket。
阅读全文
1 0
- QT tcpsocket 在断开后重新连接程序直接崩溃
- QT tcpsocket 在断开后重新连接程序直接崩溃
- SSH断开后重新连接
- EclipseSVN断开连接后 怎么重新连接
- 数据库连接断开后重新连接问题解决方案
- hibernate不支持数据库断开后重新连接问题
- 【AE】SDE图层断开后重新连接的解决方法
- 【AE】SDE图层断开后重新连接的解决方法
- 让程序可以在断开ssh连接后接着运行 screen
- 崩溃后重新打开程序,fragment 重叠问题
- 断开SSH连接后让程序继续运行
- 在Oracle数据库实现自动断开后再连接
- 在Oracle数据库实现自动断开后再连接
- python recv在连接断开后会变为非阻塞
- Mysql 断开连接之后自动重新连接
- Qt QWebsocket连接断开代码
- 魔兽世界 登录后断开连接
- eclipse断开SVN之后如何重新连接
- 服务器与客户端进程之间端口号联系
- 一致性哈希算法
- tensoflow练习6:RNN应用--生成诗词
- git使用_连接远程仓库
- 2017-8-27
- QT tcpsocket 在断开后重新连接程序直接崩溃
- node里面的c-c++模块
- 盒子模型
- Topcoder SRM 720 Hard
- 什么是“怦然心动的感觉”
- [转]nginx 配置详解
- Linux上安装Oracle的辛酸史
- hdu 6140 Hybrid Crystals(数学+思维)
- Springboot ajax异步交互中相关问题