C'est parce que pendant qu'un thread fait sa boucle, l'autre continue à bosser sur ses ips.
Version imprimable
C'est parce que pendant qu'un thread fait sa boucle, l'autre continue à bosser sur ses ips.
Oui, je me doutais que s'en était la cause, mais y-aurait-il une façon d'organiser mon code afin que ça se passe comme je le souhaite ?
Je pense par exemple à tester mon socket dans mon thread directement.. mais ça voudrait dire que dans la fonction principale je ne pourrais pas faire ce test.. argh, je m'embrouille (bis). Toute idée est la bienvenue :)
Tu peux toujours ajouter un paramètre dans genereip pour afficher deux préfixes différents, voire écrire dans des fichiers au lieu de stdout, mais à part ça...
Tu peux aussi utiliser un mutex interdisant à l'autre thread l'accès à la console tant que tu n'as pas tout écrit...
Peux-tu développer ? Tu veux dire sortir un seul printf renvoyant à la fois si l'ip répond au ping et si le port est ouvert ?
Cela ne reviendrait pas à "ralentir" artificiellement mon programme ?Citation:
Tu peux aussi utiliser un mutex interdisant à l'autre thread l'accès à la console tant que tu n'as pas tout écrit...
edit : je me suis répondu tout seul => renvoyer tout le résultat dans le même printf.
Je crois que j'ai fait le tour de la question, je suis arrivé au résultat que je voulais. Je vous remercie tous :)
- Non, je parlais de mettre un préfixe à chaque printf() pour qu'on (toi, moi, aussi bien un humain qu'un ordinateur) puisse distinguer facilement qui affiche quoi).
- Ça ne le ralentirait pas vraiment tant que les deux ne tombent que sur des IPs inexistantes, mais ça bloquerait complètement un thread pendant que l'autre a trouvé une IP qui existe et scanne ses ports. Donc oui, à ce moment ça ralentirait. Mais comme tu scannes juste un seul port, ça ne ralentirait pas tellement non plus.