Delphi kbmmw客户端:64位请求流问题
我在Delphi10.3IDE上使用64位kbmmw包开发了一个客户机-服务器应用程序。 64位客户端应用程序通过设置请求服务名称和用户名属性的SendRequest方法(kbmmwClient类方法)将请求发送到服务器。 kbmmwClient库在内部创建一个请求流(TkbmMWCustomRequestTransportStream类),该请求流将被发送到服务器Delphi kbmmw客户端:64位请求流问题,delphi,64-bit,delphi-10.3-rio,data-stream,Delphi,64 Bit,Delphi 10.3 Rio,Data Stream,我在Delphi10.3IDE上使用64位kbmmw包开发了一个客户机-服务器应用程序。 64位客户端应用程序通过设置请求服务名称和用户名属性的SendRequest方法(kbmmwClient类方法)将请求发送到服务器。 kbmmwClient库在内部创建一个请求流(TkbmMWCustomRequestTransportStream类),该请求流将被发送到服务器 tRequestStream:=TkbmMWCustomRequestTransportStream(cStreamClass.C
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位kbmMW客户端时,请求流以正确的格式发送。ServiceName、UserName和许多其他字符串以kbmMW字符串的形式传输。它们流式传输的确切方式取决于:
Kim/C4D我必须强制将客户端传输流版本设置为250,以便它与旧的服务器相同。现在它工作得很好。谢谢