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 2
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 2
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
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
oups, les exécutables ne passent pas dans les archives... pour ceux qui connaissent le Client NEBULA est 100% compatible (sauf pour les liste d'amis et d'autres petits trucs) pour ceux qui désirent l'avoir me contacter par MP
Rejoignez-nous