Pergunta

Então, estou usando o TIDHTTP para fazer solicitações de postagem. Quando tento definir o ConnectTimeout, qualquer período de tempo, não tiver efeito. Ainda espero ~ 5 segundos antes de obter exceção. Desde já, obrigado!

Foi útil?

Solução

Se você estiver se conectando a um nome de host em vez de um endereço IP, o nome do host deve ser resolvido para um IP por meio de uma pesquisa DNS, o que pode levar tempo, especialmente se o nome do host ainda não tiver sido armazenado em cache pelo sistema operacional. A propriedade ConnectTimeout não é responsável por esse tempo.

Além disso, quando o ConnectTimeout não é zero, ou se o Tidantifreeze estiver sendo usado, o Indy terá que usar um thread de trabalhador interno para executar a chamada de Socket API Connect () para o servidor. Iniciar um novo thread pode levar algum tempo, dependendo dos recursos do sistema disponíveis naquele momento. O ConnectTimeout também não é responsável por esse tempo.

A implementação atual do ConnectTimeout se aplica apenas à chamada SOGET API CONNECT () real, não a nenhum dos trabalhos extras necessários para atingir esse ponto. Como tal, se você tiver um conjunto de valores de 5 segundos de conexão, é possível dar mais de 5 segundos antes de tidtcpclient.connect () sair.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top