一个关于FD_CLOSE的有关问题

一个关于FD_CLOSE的问题
我利用Socket做文件传输,一个传输任务一个线程。
问题是如果我多个任务一起工作的时候,经常发送端发送完成并关闭Socket后,接收方会收到FD_CLOSE,但是数据却还没有接收完成。
百思不得其解,请各位指点!谢谢!

------解决方案--------------------
sleep a while then close the socket, since the packet may delay a while on the network
------解决方案--------------------
1.每次发送完,你可以在发送端发送一个结束命令,接受端根据命令关闭socket.
2.在接收端根据你传送的文件的大小判断是否已经接受完毕。然后关闭socket.
------解决方案--------------------
用消息机制,或者自己控制数据结束完后再close
------解决方案--------------------
1.改为主动接收,就不会有这个问题
------解决方案--------------------
是不是发送端调用了closesocket?
多个任务一起工作是什么含义?同时传多个文件,没有多线程吧?