Bonjour,
Je voudrais dans mon programme joindre 2 ordinateurs connectés sur le même réseau local, avec le module Socket de Python (dernière version 3.8.5 sur Windows 10).
Pour celà, afin d'utiliser le même code sur les 2 ordinateurs, les 2 ont la possibilité d'être client et serveur. En gros aléatoirement l'ordi est choisi soit étant le serveur et attendra la connexion du client, soit étant le client et essaiera de joindre le serveur (sachant qu'après un délai de 5 secondes le serveur devient client et le client serveur, s'ils ne parviennent pas à se connecter). Du coup l'idée est que les 2 ordis finissent par se rencontrer quand 1 est serveur et l'autre client (ça évite d'avoir 2 programmes différents à gérer, 1 tout le temps serveur et l'autre tout le temps client). Jusque-là ça va, ça marche niquel, les ordis se connectent bien.
Cependant, parfois il y a quelques problèmes (qui ne surviennent pas tout le temps - je ne saurais expliquer pourquoi). Quand les 2 ordis son connectés, et que je stoppe la connexion de l'un, l'autre la perd aussi et relanche une recherche à un autre ordi. Quand celui-ci est client et qu'il devient serveur (car sur l'autre ordi on n'a pas relancé une connexion), il parvient quand même à se connecter, comme si il trouvait le client (là je pense qu'il est comme connecté au client que l'ordi était précédemment, avant de basculer serveur, mais je ne suis pas sûr, et ça le fait que quand il y a eu une précédente connection interrompue entre 2 ordis différents). Pourquoi ?
Le 2nd problème (qui pareil ne survient pas tout le temps non plus) est que lorsque 2 ordis sont en serveur, evidemment ils ne se rencontrent pas, mais quand 1 bascule client après 5 secondes il arrivent à se connecter immédiatement (normal !). Cependant, le chrono de 5 secondes est censé s'arrêter, car désormais ils sont connectés, et donc les ordis sont censés rester chacun client et serveur respectifs. Or des fois il continue, et quand le client redevient serveur faisant 2 serveurs, l'autre ne perd même pas la connection (ou en tout cas le message est censé changer indiquant une connection perdue avec le client mais ne le fait pas). Pourquoi ?
Merci beaucoup pour l'aide, j'espère avoir été le plus clair possible.
Code du programme en-dessous (j'ai 2 fois ce programme, que j'exécute sur le même ordi pour tester et simuler 2 ordis différents).