delphi FTP 多线程下载 (能支持断点更好)
我在做一个软件自动升级的控件用delphi的nmftp控件做的测试可以成功但是不支持多线程和断点,请问我应该如何实现?给点例子,我比较菜,希望大家能够详细些!发一部分代码...
我在做一个 软件自动升级的控件
用delphi的nmftp控件做的
测试可以成功 但是不支持 多线程和 断点,请问
我应该如何实现?
给点例子,我比较菜,希望大家能够详细些!
发一部分代码上来 希望能够帮帮我啊
unit U_update;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls, Psock, NMFtp,inifiles,FileCtrl, ExtCtrls;
//文件信息
Const
DOWNLOAD_EXECUTING =0;
DOWNLOAD_SUCCESS =1;
DOWNLOAD_FAILURE =2;
type
PFileInfo=^TFileInfo;
TFileInfo=record
NAME : string;
DATE : string;
REMOTE_PATH : string;
LOCAL_PATH : string;
EXISTS_FILE : integer;
end;
TUpgrade_Form = class(TForm)
Up_NMFTP: TNMFTP;
Timer1: TTimer;
Panel1: TPanel;
Label5: TLabel;
Panel2: TPanel;
Hint_Label: TLabel;
file_Label: TLabel;
Up_ProgressBar: TProgressBar;
procedure Exit_ButtonClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Up_NMFTPSuccess(Trans_Type: TCmdType);
procedure Up_NMFTPFailure(var Handled: Boolean; Trans_Type: TCmdType);
procedure Up_NMFTPPacketRecvd(Sender: TObject);
procedure Cancel_ButtonClick(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
intDownloadStatus:integer;//0:待收结果,1,成功 2,失败
prv_files:array of PFileInfo;
prv_fileslist : TList;
prv_RemoteFilePath : string;
prv_id : string;
Prv_userid : string;
Prv_port : string;
Prv_password : string;
Prv_num : string;
procedure Prv_FTPIni(var checkflag : Boolean) ;
procedure Prv_resall;
function prv_getpath(filename:string):string;
procedure Prv_AutoSearch;
procedure Prv_CreateDir;
procedure Prv_Download;
function Prv_ReadRmtPath:string; //可用于程序升级 ,此处不用;
public
{ Public declarations }
b_show : boolean;
procedure Show_Form;
end;
var
Upgrade_Form: TUpgrade_Form;
implementation
…………
回答详细的追加50分
我用的是DELPHI6.0 各位大哥,那么多分,你们都不眼红的么?麻烦来个高手解答下啊
谢谢3楼匿名朋友啊,我会试着联系它的~~
谢谢的xkyqhlj的回答,你能给点详细的资料不?传我QQ,或者消息给我,关于你研究的东西 Proftpd这个东西
呵呵,想研究下这方面的东东个 展开
用delphi的nmftp控件做的
测试可以成功 但是不支持 多线程和 断点,请问
我应该如何实现?
给点例子,我比较菜,希望大家能够详细些!
发一部分代码上来 希望能够帮帮我啊
unit U_update;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls, Psock, NMFtp,inifiles,FileCtrl, ExtCtrls;
//文件信息
Const
DOWNLOAD_EXECUTING =0;
DOWNLOAD_SUCCESS =1;
DOWNLOAD_FAILURE =2;
type
PFileInfo=^TFileInfo;
TFileInfo=record
NAME : string;
DATE : string;
REMOTE_PATH : string;
LOCAL_PATH : string;
EXISTS_FILE : integer;
end;
TUpgrade_Form = class(TForm)
Up_NMFTP: TNMFTP;
Timer1: TTimer;
Panel1: TPanel;
Label5: TLabel;
Panel2: TPanel;
Hint_Label: TLabel;
file_Label: TLabel;
Up_ProgressBar: TProgressBar;
procedure Exit_ButtonClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Up_NMFTPSuccess(Trans_Type: TCmdType);
procedure Up_NMFTPFailure(var Handled: Boolean; Trans_Type: TCmdType);
procedure Up_NMFTPPacketRecvd(Sender: TObject);
procedure Cancel_ButtonClick(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
intDownloadStatus:integer;//0:待收结果,1,成功 2,失败
prv_files:array of PFileInfo;
prv_fileslist : TList;
prv_RemoteFilePath : string;
prv_id : string;
Prv_userid : string;
Prv_port : string;
Prv_password : string;
Prv_num : string;
procedure Prv_FTPIni(var checkflag : Boolean) ;
procedure Prv_resall;
function prv_getpath(filename:string):string;
procedure Prv_AutoSearch;
procedure Prv_CreateDir;
procedure Prv_Download;
function Prv_ReadRmtPath:string; //可用于程序升级 ,此处不用;
public
{ Public declarations }
b_show : boolean;
procedure Show_Form;
end;
var
Upgrade_Form: TUpgrade_Form;
implementation
…………
回答详细的追加50分
我用的是DELPHI6.0 各位大哥,那么多分,你们都不眼红的么?麻烦来个高手解答下啊
谢谢3楼匿名朋友啊,我会试着联系它的~~
谢谢的xkyqhlj的回答,你能给点详细的资料不?传我QQ,或者消息给我,关于你研究的东西 Proftpd这个东西
呵呵,想研究下这方面的东东个 展开
5个回答
展开全部
看不懂
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2008-05-28
展开全部
我给你个Q,我朋友,他玩delphi还行,我喜欢VB体,对delphi不熟,另外我写程序也是个半调子.我直接发消息给你,你问问他试试.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你就是想要一个FTP程序吗,建议下载一个免费的FTP Server。
nmftp本身不支持多线程!
支持多线程的FTP控件都是收费的!
我在编一个程序的时候也想做一个多线程的FTP,当时研究了一段时间,发现代码太大了!
最后用了一个Linux下的Proftpd解决了这个问题。
nmftp本身不支持多线程!
支持多线程的FTP控件都是收费的!
我在编一个程序的时候也想做一个多线程的FTP,当时研究了一段时间,发现代码太大了!
最后用了一个Linux下的Proftpd解决了这个问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我给你发在了油箱里了,请查收
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询