网上有完整的ftp文件管理服务端和客服端工具的源码
只是都没有续传功能
也看到有文章介绍wininet 库本身不支持续传功能要修改其库文件才能实现
真是这样吗,那位高手帮帮忙急用!谢过!

解决方案 »

  1.   

    自己记录断点信息,用FtpOpenFile、InternetSetFilePointer、InternetReadFile、InternetCloseHandle等函数下载。
      

  2.   

    修改Wininet.dll实现FTP断点续传, 需要修改系统Wininet.dll
    http://bbs.pediy.com/showthread.php?p=61151
      

  3.   

    我也看到过修改wininet.dll的方案
    不过不知道在哪里修改一下信息像是只有调试时才出现的吧:
    debug 进入 psdk 的wininet.dll中的FTPOpenFile经过很多个小时的跟
    踪以后发现
    以下三个函数入口:
    761BB256   and         ebx,80000000h
    761BB25C   mov         eax,761DE8F0h
    ………………………………………………………
    761BB261   jne         761BB268
    761BB263   mov         eax,761DE8E8h
    761BB276   call        761BC0A2                format("RETR %s");
    761BC213   push        edi
    761BC214   mov         edi,dword ptr [ebp+70h]
    761BC217   push        eax
    761BC218   push        761DE9ECh
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    761BC21D   push        edi
    761BC21E   push        0
    761BC225   call        761BC1C3
                    format("TYPE %s");761BC7F9   test        eax,eax  //没有用
    761BC7FB   jne         761BC89D //没有用
    761BC801   push        dword ptr [ebp+78h]
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ lpstrFileAtServer
    761BC804   push        761DE93Ch
    761BC809   push        dword ptr [ebp+58h]
    761BC80C   call        761BC003
                    format("SIZE %s",lpstrFileAtServer)
    修改DLL成 SIZE %s->REST %s

    然后就是修改参数调用:
    761BC7F9  85 C0 0F 85 9C 00 00  ?.?..
    761BC800  00 FF 75 78761BC7F9   test        eax,eax  //没有用
    761BC7FB   jne         761BC89D //没有用
    761BC801   push        dword ptr [ebp+78h]的11个字节想办法修改成:、、?怎么改761BC7F9  90 8B C5 05 50 01 00  ?..P..
    761BC800  00 50 90 90      nop;
          mov eax, ebp    ;
          add eax, 0x150  ;
          push eax ;
          nop;
          nop;
    希望高手能指导的详细些,谢了!
      

  4.   

    对sdk的使用不熟
    能提供下断点续传的例子吗!
      

  5.   

    是想在FTP服务器上实现断点续传的功能?
    http://www.diybl.com/course/3_program/c++/cppsl/200815/95891.html看不出来这是什么东西呀
    要解决什么问题也不清楚
    源程序是什么?