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]
图片说明图片说明

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