我在Delphi 10.3.2中创建了这个TEST控制台应用程序。
我可以通过win32应用程序更新在“ ubuntu linux”上运行的memcached服务器, 如果我编译此控制台应用程序并在linux上运行,它将无法正常工作。
我认为这是一个编码问题。
program ProjecttestLinuxMemCach;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils,system.json,system.netencoding,system.DateUtils,idtcpclient,idGlobal;
var
tcp : TIdTCPClient;
s : String;
begin
try
tcp := TIdTCPClient.Create;
try
tcp.ConnectTimeout := 1000;
tcp.ReadTimeout := 3000;
tcp.Host := '192.168.30.141'; // my local memcached server running on linux.
tcp.Port := 11211;
tcp.ReuseSocket := rsTrue;
s:='set q 0 0 1'+sLineBreak+'b'+sLineBreak;
tcp.Connect;
tcp.Socket.Write(s);
repeat
s:= tcp.Socket.ReadLn(sLineBreak);
until (s = 'END')or ( s='' ) or ( s='STORED' );
writeln(s)
finally
tcp.Free;
end;
readln;
except
on E: Exception do
Writeln(E.Classname,': ',E.Message);
end;
end.
对于Linux相同的问题,我尝试将sLineBreak更改为#10。 当我在linux上运行时,我得到空白响应,并且未设置值。
任何想法如何解决?
谢谢