Hola a todos, tengo un servidor DataSnap, sucede que la aplicación cliente cada cierto intervalo debe conprobar si existe este servidor en la IP y puerto determinados, para concocer esto uso la función siguiente:
Código Delphi
[-]function PortTCP_IsOpen(dwPort : Word; ipAddressStr:AnsiString) : boolean;
var
client : sockaddr_in;
sock : Integer;
ret : Integer;
wsdata : WSAData;
begin
Result:=False;
ret := WSAStartup($0002, wsdata); if ret<>0 then exit;
try
client.sin_family := AF_INET; client.sin_port := htons(dwPort);
client.sin_addr.s_addr := inet_addr(PAnsiChar(ipAddressStr));
sock :=socket(AF_INET, SOCK_STREAM, 0); Result:=connect(sock,client,SizeOf(client))=0; finally
WSACleanup;
end;
end;
lo que me sucede es que cuando mido el consumo de memoria del servidor este aumenta considerablemente cuando el cliente usa esta función, no se si está quedando algún objeto por liberar en el algoritmo, pero no encuentro como bajar el consumo de memoria, o si existe otra manera de saber si está activo el servidor, na posibilidad sería hacer la conexión mediante el bloque try ... except, pero me gustaría poder depurar esta función que la uso en otras tareas y hacer que baje el consumo al comprobar la ip y puerto
Gracias e antemano a todos por las atenciones