線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:907
推到 Plurk!
推到 Facebook!

TClientSocket&TServerSocket传输文件时,缓冲怎么设定才最快?

尚未結案
jackalan
初階會員


發表:20
回覆:88
積分:36
註冊:2003-11-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-08-02 18:26:33 IP:221.226.xxx.xxx 未訂閱
在用TClientSocket&TServerSocket传输文件时,每次发送的包大小应该怎么设定才能达到最快?也就是下面的:
try
  GetMem(SouFileBuf,BufSize);
  if (opFile.Position BufSize 1) < opFile.Size then
  begin
    opFile.Read(SouFileBuf^,BufSize);
    Socket.SendBuf(SouFileBuf^,BufSize);
    IsSendEnd := False;
  end
  else
  begin
    LastBufSize := opFile.Size-opFile.Position;
    opFile.Read(SouFileBuf^,LastBufSize);
    Socket.SendBuf(SouFileBuf^,LastBufSize);
    opFile.Free;
    IsSendEnd := True;
  end;//最后一次发送,发送剩余的数据
finally
  FreeMem(SouFileBuf,BufSize 1);
end;
BufSize应该怎么设定,我测试了一下,在本机 BufSize设定在4192或者更大时传输速度很快。 但如果在局域网上BufSize就相反了,并不是我认为的越大 越好,这是BufSize设定在2048就是2K时速度最快,设 定多了会出现异常。 但如果在广域网上INTERNET上,BufSize设定在1024左 右最快,设定多了会出现异常。 请问这个BufSize是不是有什么最佳的算法,让它能够处于 传输的饱和状态,不然在不知道传输的途径或者网络情况下很男让其工 作在最佳状态。 ======================= 无情剑客多情剑
Ktop_Robot
站務副站長


發表:0
回覆:3511
積分:0
註冊:2007-04-17

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-04-26 13:51:38 IP:000.000.xxx.xxx 未訂閱
提問者您好:


以上回應是否已得到滿意的答覆?


若已得到滿意的答覆,請在一週內結案,否則請在一週內回覆還有什麼未盡事宜,不然,
將由版主(尚無版主之區域將由副站長或站長)自由心證,選擇較合適之解答予以結案處理,
被選上之答題者同樣會有加分獎勵同時發問者將受到扣 1 分的處分。不便之處,請見諒。


有問有答有結案,才能有良性的互動,良好的討論環境需要大家共同維護,感謝您的配合。

------
我是機器人,我不接受簡訊.
系統時間:2024-05-19 9:43:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!