Chat multithread

Description

Cela fait bien longtemps que je n'ai pas posté de source
Dans le cadre d'un développement plus large, j'ai eu besoin d'un logiciel de chat
Celui-ci reprend une architecture Serveur/Client. En mode Serveur, ce dernier se lance et attend des connexions clientes. Automatiquement une connexion est créé permettant de dialoguer... tout seul
A partir de là, il est nécessaire de lancer une ou plusieurs autres instances du programme mais cette fois-ci en mode client en indiquant l'IP du serveur (en mode réseau local ou internet). L'IP internet est récupérée à partir d'un script PHP http://programmeur.fou.free.fr/MyIP.php dont je remercie l'auteur au passage.
6 connexions simultanées sont possibles pour le moment (un #define est à l'origine de cette limitation)
Lorsqu'une déconnexion est repérée( mot clé "/exit" ou bien fermeture de la fenêtre), le socket est libéré, laissant sa place à qq1 d'autre souhaitant se connecter (toujours dans la limite de 6 personnes simultanées). Pour chaque client connecté, un thread est créé au niveau du serveur. Ce thread s'acquitte de la réception du message venant du client et du renvoi de la prose aux autres clients (tout transite par le serveur)
Au niveau client, un thread se charge de la réception des messages, l'envoi étant provoqué par la touche "Enter" comme dans MSN

Améliorations à venir :
-----------------------
  • Disparition de la notion d'IP : le serveur ira écrire sur un site son IP internet et le client s'y connectera afin de venir lire cette ip. L'utilisateur n'aura plus à intervenir
  • Amélioration de l'interface (police, couleurs, personnalisation)
  • envoi de fichiers
  • insertion d'icônes (smileys ?)

Conclusion :


Je cherche à faire fonctionner la chose derrière un routeur livebox mais pour le moment ça ne marche pas (j'ai pourtant fait un redirection de ports). Donc pour la partie "connexion sans ip" on va attendre un peu

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.