全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2688
推到 Plurk!
推到 Facebook!

FtpServer有辦法知道Client目前下載的進度、速度嗎?

答題得分者是:P.D.
weston
一般會員


發表:8
回覆:7
積分:3
註冊:2007-02-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-09-26 18:47:24 IP:211.21.xxx.xxx 訂閱

請問各位有經驗的大大,使用FtpServer能夠有辦法知道各自連上來的ftpClient下載檔案的進度和速度嗎?就像Client下載封包的數量?
最後謝謝好心的大大指點一下........................3Q....
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-09-27 16:55:23 IP:61.220.xxx.xxx 訂閱
已經傳輸檔案大小  除以 檔案大小 = 進度
已經傳輸檔案大小 除以 秒數 = 傳輸速度
如果您是想問實際上 Code 如何寫的
請先提供您的 FTP Server 程式碼
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-10-01 02:11:57 IP:61.67.xxx.xxx 未訂閱
參考這個做法,這是Indy元件

[code delphi]

{$R *.DFM}
var
AverageSpeed: Double = 0;
......
procedure TForm_PosUD.IdFTP1Work(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer);
Var S: String;
TotalTime: TDateTime;
H, M, Sec, MS: Word;
DLTime: Double;
begin
TotalTime:= Now - STime;
DecodeTime(TotalTime, H, M, Sec, MS);
Sec:= Sec M * 60 H * 3600;
DLTime:= Sec MS / 1000;
if DLTime > 0 then AverageSpeed:= (AWorkCount / 1024) / DLTime;

S:= FormatFloat('0.00 KB/s', AverageSpeed);
case AWorkMode of
wmRead: StatusBar1.Panels[0].Text := '下載速度 ' S;
wmWrite: StatusBar1.Panels[0].Text:= '上傳速度 ' S;
end;
StatusBar1.Update;
if AbortTransfer then IdFTP1.Abort;
ProgressBar1.Position:= AWorkCount;
ProgressBar1.Update;
AbortTransfer:= False;
Application.ProcessMessages;
end;

procedure TForm_PosUD.IdFTP1WorkBegin(Sender: TObject;
AWorkMode: TWorkMode; const AWorkCountMax: Integer);
begin
TransferrignData:= True;
AbortTransfer:= False;
STime:= Now;
if AWorkCountMax > 0 then ProgressBar1.Max:= AWorkCountMax
else ProgressBar1.Max:= BytesToTransfer;
AverageSpeed:= 0;
end;

[/code]

這要你po上程式碼,我認為有點困難,所以提供這個做法你參考看看
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-10-01 10:27:05 IP:61.222.xxx.xxx 訂閱
我自製WebServer 是可以做到。如同FTP Server 也可以做到。
只不過過渡的計算速率,是否會降低下載速度?
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-10-01 16:04:47 IP:61.67.xxx.xxx 未訂閱
版主所打的過"渡",還是過"度",這個用詞就差了很多哦! 還算評估傳送狀況,就理論上是應該會降低效能的,但會降多少實質使用上其實我們並沒有真正去探測,不過就我應用在客戶的場合上,平均下載速率在40-50K的顯示值下,與一般的FTP下載狀況並沒有太大的差異,或許電腦的等級可以彌補這方面的問題吧!
===================引 用 wameng 文 章===================
我自製WebServer 是可以做到。如同FTP Server 也可以做到。
只不過過渡的計算速率,是否會降低下載速度?
系統時間:2024-04-26 12:50:29
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!