SERVEUR CHAT (DEV C++)

jehro85
Messages postés
6
Date d'inscription
mardi 23 janvier 2007
Statut
Membre
Dernière intervention
10 novembre 2007
- 23 janv. 2007 à 17:13
mondrone
Messages postés
246
Date d'inscription
mercredi 5 janvier 2005
Statut
Membre
Dernière intervention
11 mars 2012
- 24 avril 2007 à 13:15
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/41232-serveur-chat-dev-c

mondrone
Messages postés
246
Date d'inscription
mercredi 5 janvier 2005
Statut
Membre
Dernière intervention
11 mars 2012

24 avril 2007 à 13:15
J'ai testé ton code, qui risque de m'être par ailleurs fortement utile, mais autant il passe parfaitement lors du lancement, autant pendant un lancement pas à pas sous gdb (code::blocks), il y a corruption possible de la pile ligne 1396 de servbaze.c (fonction log instruction free(args)), ce qui ne m'étonne pas d'ailleurs puisque tu essaye de libérer une variable non pointeur (peut être que ca se fait effectivement ? Mais ca m'étonne néanmoins)
cs_Nebula
Messages postés
787
Date d'inscription
samedi 8 juin 2002
Statut
Membre
Dernière intervention
7 juin 2007
1
3 févr. 2007 à 22:02
Quelques remarques après avoir regardé le code (pas pu résister) :)

Concernant le code lui même :
1) modularise le code, tout dans un seul .c c'est assez indigeste
2) scinde les fonctions, certaines sont beaucoup trop grosses (comme traitement_reception)

Concernant les performances :
3) utilise des hash dans un switch plutôt que tous ces if(strcmp(args[0], ...))
4) utilise des hash table pour les clients / salons l'accès est quasi instantané comparé à une liste chainée (mais tu peux conserver des listes chainées pour les envois séquentiels des infos, vu qu'il faut de toute façon tout parcourir)
5) utilise les fonctions de winsock 2.2, select sous windows c'est pas top
cs_Nebula
Messages postés
787
Date d'inscription
samedi 8 juin 2002
Statut
Membre
Dernière intervention
7 juin 2007
1
3 févr. 2007 à 21:47
Salut, je n'ai pas encore regardé le code vu que je ne suis pas sur mon PC actuellement, mais quand tu parles de Nebula tu parles du client que j'avais déposé sur delphifr (en tout cas ton screen y ressemble, tu utilises quel composant pour gérer les smileys) ? Çà fait plaisir de savoir que ce code n'est pas totalement tombé dans l'oubli :p
jehro85
Messages postés
6
Date d'inscription
mardi 23 janvier 2007
Statut
Membre
Dernière intervention
10 novembre 2007

1 févr. 2007 à 07:55
Petite info ayant lu les logs du serveur, en effet le serveur est en phase de test sur ma machine, le client va essayer de se connecter en premier lieu sur celui-ci, si il ne trouve pas le serveur il tente une connection dans le réseau local (192.169.1.3) puis pour finir si il ne trouve tj pas de serveur il tente une connection sur le localhost. donc pour tester en local bloquez les connections extérieures du client, su vous ne saver pas comment faire, déconnectez vous de l'internet. Les commentaires sont les bienvenus.
jehro85
Messages postés
6
Date d'inscription
mardi 23 janvier 2007
Statut
Membre
Dernière intervention
10 novembre 2007

23 janv. 2007 à 17:45
pour faire plus simple voila l'adresse du client : http://jehro85.membres.jexiste.org/funnychat/funnychat.exe
Afficher les 6 commentaires