У меня есть это консольное приложение TEST, созданное в delphi 10.3.2.
Я могу обновить сервер memcached, работающий в "ubuntu linux", из него из приложения win32, если я скомпилирую это консольное приложение и запуском его на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.
Я попытался изменить sLineBreak на # 10 для Linux такой же проблемы. Когда я работаю в Linux, я получаю пустой ответ и значение не устанавливается.
Есть идеи, как это исправить?
Спасибо