怎么用多线程的方式来实现服务器与客户端之间的文件传输

如何用多线程的方式来实现服务器与客户端之间的文件传输
我想用c++编写一个用多线程的方式来传输服务器与客户端之间有文件,请问怎样编写啊,比如文件用800M左右这么大,
请各位指点一下,谢谢

------解决方案--------------------
你先实现一个简单地将文件分成两份(意味着你可以启用两个线程来向服务器请求数据,同样服务器端也开启两个线程来对客户端相应线程服务)。譬如请求一个100M的文件,则客户端线程1请求0~50M的数据,客户端线程2请求50~100M的数据;同样服务器端相应线程也发送相应数据。在客户端先生成一个100M的空文件(对一个100M的文件先全部写0),然后启动各自线程,各自线程传入参数为起止位置,线程开始向服务器发送一次请求数据包,包含起始位置,服务器端接收到该请求后开始从请求起始位置开始向客户端发送数据直至终止位置。客户端线程接收到数据(可定义前64位为该数据偏移)后向文件相应位置写入数据。这里要注意如何多线程对同一文件的访问冲突,所以需要添加临界区,每次写入都须先进入临界区,再SEEK到相应位置,然后写入文件,最后退出临界区。
待实现了这个程序以后,你可以考虑将自己的程序扩展到3个甚至更多线程进行多线程下载了。