【发布时间】:2020-07-27 07:15:12
【问题描述】:
我在 Delphi 10.3 IDE 上使用 64 位 kbmmw 包开发了一个客户端-服务器应用程序。 64 位客户端应用程序通过设置请求服务名称和用户名属性的 SendRequest 方法(kbmmwClient 类方法)将请求发送到服务器。 kbmmwClient 库在内部创建一个请求流(TkbmmWCustomRequestTransportStream 类),它将被发送到服务器。
tRequestStream:=TkbmMWCustomRequestTransportStream(cStreamClass.Create(FTransport,FTransport.Info));
tRequestStream.RequestID:=rid;
tRequestStream.ServiceName:=AServiceName;
tRequestStream.Username:=FUsername;
--Begin my debug-----------------
debug('InternalSendRequest - tRequestStream.ServiceName: ' + tRequestStream.ServiceName);
debug('InternalSendRequest - tRequestStream. Username: ' + tRequestStream.Username);
t := tkbmmwmemorystream(tRequestStream.DataStream);
SetString(streamstring, PAnsiChar(t.Memory), t.Size);
write_debug('InternalSendRequest - tRequestStream - DataStream: ' + streamstring);
--End my debug
这是调试结果:
14/04/2020 15:50:32.226: InternalSendRequest - tRequestStream.ServiceName: reqservice
14/04/2020 15:50:32.226: InternalSendRequest - tRequestStream. Username: ANDAPI
14/04/2020 15:50:32.227: InternalSendRequest - tRequestStream - DataStream: Ìû¯
STANDARDü
r e q s e r v i c e A N D A P I ÿÿÿÿ €
为什么服务名称 (reqservice) 和用户名 (ANDAPI) 的字符中穿插有空字符? 当我使用 32 位 kbmmwClient 时,请求流以正确的格式发送。
【问题讨论】:
标签: delphi 64-bit delphi-10.3-rio data-stream