我正在尝试在 DataSnap 服务器/客户端之间传输一些大流(~1Mb),但无济于事。我试图理解 Jim Tierney 的代码(http://blogs.embarcadero.com/jimtierney/2009/04/06/31461)但没有运气,由于缺少库,我什至无法编译代码,反正 ...
我能够接收的最大流大小为 64k,因此您可以为像我这样的周末程序员提供的任何提示/想法/代码示例都将受到欢迎。谢谢!
我的服务器代码:
function TsrvMethods.getStream(iCount: integer): TStream;
begin
Result := dummyStream('0123456789', iCount);
end;
function dummyStream(sCnt: string; iCount: integer): TStream;
begin
Result := TMemoryStream.Create;
while iCount > 1 do begin
Result.Write(Pointer(sCnt)^, Length(sCnt));
Dec(iCount);
end;
Result.Seek(0, TSeekOrigin.soBeginning);
end;
我的客户调用代码:
procedure TfrmMain.butStreamClick(Sender: TObject);
var
sStr : TStream;
begin
cycleConnection; //make sure we have an active connection
with TsrvMethodsClient.Create( SQLConn.DBXConnection, False ) do begin
sStr := getStream( Integer(SpinCount.Value) );
Free;
end;
FreeAndNil(sStr);
end;