Bonjour,
j'essaye de faire un chat multi-utilisateur.
La structure est la suivante : un utilisateur se connecte à un serveur via un Socket(IP/port) puis le serveur créé un objet thread (Client) afin de gerer cet utilisateur à part. L'objet Client ouvre un nouveau ServerSocket qu'il transmet à l'utlisateur (le port du SreverSocket) puis ferme la connection afin de libérer le port et attend l'utilisateur sur le nouveau port. L'utilisateur lui recoit le port, se connecte au Socket Client et ferme la premiere connection avec le serveur.
De cette manière le Serveur dispose de nouveau de son port afin d'accueillir un futur utilisateur... Cependant cela ne fonctionne pas, j'utilise des .close() qui ne generent pas d'erreur et je fais des tests avec des isClosed() tout semble bon.
J'effectue tout mes tests en local, est ce que cela peut poser un problème ?
Mon problème est :
Lorsque je désire connecter un second utilisateur une erreur sort toujours :
Already in use . pourquoi ? En plus, même si je fais une simple attente avec un .accept puis un .close() au niveau du serveur de l'objet connecté sur le port. Et le .close du coté utilisateur aussi...
Je suis allez voir beaucoup de chat deja tout fait sur internet et je ne comprend peut etre pas bien comment fonctionne l'allocationet la liberation des ports.
Merci de votre réponse
Partager