USES IdTCPClient;
...
TYPE
netUn_ResultCode = (rcCreateError, rcActionError, rcActionOk, rcOk);
...
FUNCTION netUn_TestPort_hTS(CONST c_ip: ShortString; CONST c_port, c_timeout: Word): netUn_ResultCode;
{
==============================
Parameters:
c_ip ShortString
c_port Word
c_timeout Word
Result netUn_ResultCode
==============================
}
VAR
g: netUn_ResultCode;
aIdTCPClient: TIdTCPClient;
BEGIN
g:= rcCreateError;
TRY
aIdTCPClient:= TIdTCPClient.Create(NIL);
IF aIdTCPClient <> NIL THEN BEGIN
TRY
TRY
g:= rcActionError;
aIdTCPClient.Host:= c_ip;
aIdTCPClient.Port:= c_port;
aIdTCPClient.Connect(c_timeout);
aIdTCPClient.Disconnect;
g:= rcOk;
EXCEPT
g:= rcActionError;
END;
FINALLY
IF aIdTCPClient.Connected THEN aIdTCPClient.Disconnect;
END;
END;
FINALLY
IF aIdTCPClient <> NIL THEN FreeAndNil(aIdTCPClient);
END;
Result:= g;
END;