Salut,
Le comportement par défaut de ReadLn est en effet d'attendre indéfiniment que l'on écrive dans la connexion.
Par défaut, le ReadTimeOut est défini IdTimeOutDefault (-1 je crois). Tu peux le définir à IdTimeOutInfinite (-2 je crois) de sorte que toute lecture dans la connexion se comporte comme le ReadLn.
Mais dans ton cas, ce qui t'intéresse c'est que le ReadLn n'attende pas indéfiniment. Tu peux le faire en utilisant une version surchargée, ou en définissant le ReadTimeOut pour tout le monde (je préfère la première solution).
Exemple avec 100 ms de TimeOut :
vReceived := IdTCPClient1.IOHandler.ReadLn(LF, 100);
Autre exemple avec 100 ms de TimeOut :
1 2
| IdTCPClient1.ReadTimeout := 100;
vReceived := IdTCPClient1.IOHandler.ReadLn; |
Partager