3
我最近開始在Delphi中使用DataSnap來產生什麼是RESTful Web服務。在他自己Marco Cantu和其他幾個人在互聯網上的指導下,我成功地獲得了整個「連鎖」的工作。Delphi(DataSnap)Slow
但有一個小問題的速度;客戶端現在可以向服務器發送一個流(連同它的大小)(由於這裏的錯誤DataSnap XE2 and TStream method parameters被讀取到發送的大小),服務器會將它重組爲一個文件並將其保存在磁盤上。
但是,如果是3.66MiB文件,則需要超過50秒!
這應該是這種情況嗎?在服務器上,我有:
try
F := TFileStream.Create('written.dat', fmCreate);
F.Position := 0;
F.CopyFrom(Data, DataSize);
finally
F.Free;
而且在客戶端:
var
Server: TServerMethods1Client;
DBStream: TFileStream;
begin
Server := TServerMethods1Client.Create(SQLConnection1.DBXConnection);
try
DBStream := TFileStream.Create('DataSnapServer.exe', fmOpenRead);
DBStream.Position := 0;
Showmessage(IntToStr(Server.SendData(DBStream, DBStream.Size)));
finally
Server.Free;
任何幫助表示讚賞!
乾杯, 阿德里安
「*是否應該這樣?*」不,但可能是網絡問題。如果您只是將大小的文件複製到服務器會發生什麼情況?如果你ping/tracert服務器,你會看到什麼? – GolezTrol
對不起,它們都在同一臺計算機上;即連接到本地主機 – Adrian
聽起來像是一個實現錯誤:等待達到超時然後截斷返回的內容。它應該處理Content-Length HTTP標頭。 –