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标头。 –