Testando se uma porta TCP está escutando

Compartilhar/Favoritos

Teste se uma porta TCP de um host qualquer está escutando. Você pode determinar o timeout para que a conexão seja feita, ou seja, não precisa ficar vários segundos esperando como nas funções blocking do Windows Sockets.

Este é de um grupo de posts muito antigos, de 2002. Vêm do meu antigo site, quando ainda trabalhava com Delphi e tinha um K6-2(!!!!). Bons tempos aqueles…

Provavelmente não serve para muita coisa hoje, mas é legal ver como as coisas eram. Além disso, ainda há gente acessando!

Se você se interessou pelo assunto, certamente teve que testar alguma vez se uma porta TCP de um servidor estava “aberta” e não gostou do tempo que leva para saber que não está…

Quando existe uma porta escutando, o resultado é rápido. Assim que a conexão é feita, as funções retornam esse estado.

O problema é quando não estão abertas, não existe nada escutando por elas. O timeout padrão das funções com bloqueio do Windows Sockets é muito alto e, por isso, você tem que esperar vários segundos para saber que uma porta não está aberta. Isso é uma grande perda de tempo, sobretudo se estiver testando em LANs, cujos timeouts deveriam ser bem pequenos.

Felizmente, existem outras maneiras de verificar isso de forma que você possa determinar exatamente quanto tempo esperar. Para isso, fiz uma pequena unidade só com uma função que tem como parâmetros o endereço IP do servidor que quer testar, a porta TCP e o tempo que deseja esperar em milisegundos.

A unidade foi criada para Delphi 5 mas acredito que funcione em outras versões.

Para pegá-la, clique aqui (1,25KB compactado).

You may also like...

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Translate »