Question

Je dois vous connecter à un périphérique sur le réseau local, à l'aide d'une connexion TCP / IP. Lorsque j'utilise un TidTcPclient, tout fonctionne bien, sauf une chose:

Si la connexion n'est pas disponible, il faut environ 18 à 20 secondes avant que je reçoive un délai d'attente. La propriété ConnectTimeout n'a aucun effet, peu importe les valeurs que j'ai définies. Il faut toujours le même temps avant un délai d'attente.

Cette réponse mentionne de longs temps de retard pour un délai d'attente et je suis se demandant si cela est lié aux composants Indy?

Je dois savoir si la connexion ne peut pas être établie très rapidement, disons dans une seconde au plus 1 seconde.

Y a-t-il un moyen de faire cela en utilisant Indy, ou dois-je utiliser des composants différents / une approche différente?

(J'utilise la version indy 10 livrée avec Delphi 2009)

EDIT :
J'ai suivi les instructions pour mettre à niveau Indy vers la dernière version de Ce message .

Toujours identique, il faut maintenant systématiquement 22 secondes jusqu'à ce que tcpclient.Connect renvoie quand il n'y a pas de connexion. ConnectTimeout et / ou ReadtimeOUT ne semblent avoir aucune influence sur cela.

Autres conseils

ConnectTimeout fonctionne correctement pour 2010 et XE.Peut-être que vous pouvez mettre à jour votre version indy vers la dernière (sa liberté).J'ai une fonction qui fait référence à "Vérification rapide", juste pour vérifier la disponibilité de l'appareil et ces délais d'expiration sont de 5 secondes sans problèmes (en 2010 et XE).

avec un délai de connexion client TCP par défaut (non spécifiquement défini) et un délai de lecture de 1 seconde, à l'aide de Delphi 2010 et de la dernière version Indy, une connexion locale (utilise localhost comme nom d'hôte) fois sur 1 seconde.Donc, ce n'est certainement pas une question Delphi / Indy.BTW, cela me donne une eidsocketError ("Connexion n ° 10061 n ° 10061 refusée").

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top