I use to check tcp and port, eg:
var
....
svr : TTCPBlockSocket;
test : Integer = -1; // error
begin
svr := TTCPBlockSocket.Create;
try
svr.Bind(currHost,currPort);
svr.Listen;
test := svr.LastError;
Svr.CloseSocket;
finally
svr.Free;
end;
if test = 0 then
begin
pingOk:= True;
......