我正在使用 TCP/IP 协议在 Delphi XE2 中处理 DataSnap 项目,该协议需要将二进制数据流作为方法参数传递给服务器。我遇到的问题是流内容的大小限制似乎约为 32 KB。超出此限制,服务器接收到的流为空。如果我传递其他方法参数,它们会完好无损地到达,所以这似乎是参数级别的问题。
以下是 DataSnap 服务类的声明方式:
TDataSnapTestClient = class(TDSAdminClient)
private
FSendDataCommand: TDBXCommand;
public
constructor Create(ADBXConnection: TDBXConnection); overload;
constructor Create(ADBXConnection: TDBXConnection; AInstanceOwner: Boolean); overload;
destructor Destroy; override;
procedure SendData(Data: TStream);
end;
我使用的方法应该有效,至少根据 Jim Tierney 的文章。也就是说,自 Delphi 2009 以来显然发生了一些更改,这些更改破坏了 Jim Tierney 的示例代码。
任何有关如何解决此问题的想法将不胜感激。