夕阳追脚尖 2019-09-17 17:46 采纳率: 50%
浏览 1152

QT 多线程 TCP文件传输 接收不完全

最近学习文件传输 然后写了一个同窗口的发送文件和接收 小文件大文件都没问题
然后又想弄个多线程的文件传输 然后就遇到问题了
1. 首先传输小文件没问题,然后传送一般的不是很大的文件的时候就会出现客户端发送完毕,而服务器没有接收完的情况,这是什么原因?
图片说明
2. 然后传输大文件时,会出现程序崩溃的情况,这个是啥情况
图片说明图片说明
3. 再然后 在线程中如何关闭socket? 我在槽函数中关闭的话,会报错 好像说是
QSocketNotifier: Socket notifiers cannot be enabled or disabled from another thread
ASSERT failure in QCoreApplication::sendEvent: "Cannot send events to objects owned by a different thread. Current thread 0x0x246e9610. Receiver '' (of type 'QNativeSocketEngine') was created in thread 0x0x2462d1d0", file [url=kernel\qcoreapplication.cpp, line 578]kernel\qcoreapplication.cpp, line 578[/url]
图片说明图片说明

  • 写回答

1条回答 默认 最新

  • aipsys 2019-09-18 23:03
    关注

    要用共享打开,管理各线程读写文件的位置和长度,不要重合。收到写时,先建立空的一样大小文件,再按位置长度写入

    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料