互联网上有台服务器,有固定IP,
上面有sql server数据库,还是ftp服务器客户机有多台,要拨号上网,
连接sql server数据库,读取某个表,这个表是 客户需要下载的文件清单,里面是对应的ftp地址,
客户机根据文件清单从ftp下载文件。难点:客户机 无人值守,需要定时不断地从sql server读取下载清单,这个下载清单的内容会不断增加(即ftp地址表),
          因为是拨号上网,所以可能不稳定,需要在数据库连接断开时,重连数据库;ftp连接断开时,重新连接ftp
请问各位大侠,这个程序好做吗?

解决方案 »

  1.   

    上面有sql server数据库,还有ftp服务器
      

  2.   

    数据库自动重连很简单,ftp那个没做过
      

  3.   

    好做。
    如果不考虑安全性。客户端程序可以直接连数据库和ftp,用定时器控制即可。
    关于断网重连问题,因为连数据库和ftp都属于TCP通信方式,断后重新登录,判断超时即可。如果考虑安全性。
    要用webservice作为中间层,客户端不直接访问数据库。
    由中间层返回下载清单列表。
      

  4.   

    真的很简单吗???TADOConnection 连接数据库,如果连接失败,就会像死机一样,
    所以TADOConnection必须放在一个线程里面吧;ftp下载的功能 也必须放在一个线程里面。
    定时器可以吗?据说定时器的消息 经常丢失啊,不过丢失也关系不大。
    下载的文件如果很大,还没下载完,sql server里面可以又多了ftp下载任务,
    必须从sql server读出这些下载任务,然后追加到“等待下载列表”里面。要不要线程同步和互斥啊?多谢各位大侠的帮忙啊!多线程不太熟,郁闷中
      

  5.   

    数据库连接设置timeout问题不大吧,
    用连接数据库的线程做计数器每次读取成功则启动下载线程,
    既然用了定时器那么下载肯定不是即时的,每次读取为一批,即便是期间加入了新的元素那是下一批的任务了
    但像楼主说的如果文件很大,而你的客户端连接不稳定,可能是不是研究一下断点下载才是你这个项目真正要考虑的
      

  6.   

    访问数据库,建议client/webserver模式,或其它多层模式重新下载不考虑断线续传,应该自己用ftp客户端控件就行了
    或者通过一个命令行的ftp客户端工具,程序复制根据ftp地址生成 调用ftp客户端工具下载的bat
      

  7.   

    多谢sz_haitao大侠啊!“访问数据库,建议client/webserver模式,”(1)我也想要安装 iis,然后用asp脚本访问数据库,用 http get 或 post 来获取 asp返回页面。然后客户机解析 返回页面,达到ftp下载列表。(2)另外ftp是不是也可以不用了? 改成IIS路径,这样下载文件也走http方式了。-------------------问题是:解析asp页面,生成下载列表要不要一个线程?定时获取 asp返回页面,是不是要 用 TTimer?
    下载文件这个功能,要不要一个线程?当前下载列表的文件还没下载完,又有新的下载任务下达时,
    新的下载任务列表要追加到 当前下载列表中,这个动作 要不要进行线程同步和互斥?
    谢谢各位大侠啊!!!
      

  8.   

    idhttp客户端取asp的页面,分析里面的url,再一个个用idhttp下载
    是否多线程,看速度要求,一般串行简单些新的下载任务下达?如果串行,你没下载完,不会去取asp页面,就不涉及追加
      

  9.   

    多谢sz_haitao大侠啊!现在好像知道怎么做了。多谢啊!另外想问一下,idhttp控件 直接放在form上吗?
    要不要 把idhttp 封装在一个 TThread里面啊?
    谢谢各位大侠啊!!!
      

  10.   

    可以放form,也可以运行时代码创建
    如果想并发收取,是需要把idhttp给线程使用