최근 델파이에서 DataSnap을 사용하여 RESTful 웹 서비스를 만들었습니다. 마르코 칸투 (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
죄송합니다. 둘 다 같은 컴퓨터에 있습니다. localhost에 연결 중입니다. – Adrian
구현 버그와 유사합니다 : 타임 아웃에 도달 할 때까지 기다린 다음 반환 된 내용을 자릅니다. Content-Length HTTP 헤더를 처리해야합니다. –