我想实现如下的功能:有一个客户端和一个服务器(C/S),当服务器向客户端发送数据时,可以进行手动中止,然后还可以手动恢复续传,请问使用Socket连接如何实现类似的功能,谢谢!

解决方案 »

  1.   

    1) When client receives any information, write to disk cache.2) When client wants to get data, check if it's in the cache already (complete or partiail), ask the server if that information has changed since the last download.3) Only download information when it's new or not in cache.
      

  2.   

    谢谢FengYuanMSFT,现在我还有一个问题是,没有办法手动停止数据的传输,即无法监测数据传输过程中是否有错误,请问应该怎样做?谢谢
      

  3.   

    1.定义包的格式
    2.先传文件的大小,客户端判断是否断点续传
    3.客户端向服务端发送要传送的文件位置
    4.服务器开始发送、客户端接收
    5.最好使用tcp连接
      

  4.   

    请问zxq80,关于第三条,文件位置如何确定,因为我不知道它是在哪里断掉的,也就不知道应该从那个位置续传。谢谢
      

  5.   

    续传的原理我觉得是这样的:
    首先,客户端要得到文件的基本信息(最主要是大小,名字等)
    其次,客户端要根据文件大小划分几个线程来对文件进行接收。每个线程接收的文件以.temp结尾
    然后,当程序中断时,可以比较本地已收的文件和原文件的大小,来决定继续接收
    最后,所有的.temp文件大小和原文件大小一致时,还原成原文件。
      

  6.   

    http://www.vckbase.com/document/viewdoc/?id=448