MINICHAT MULTI-CLIENT

wisar Messages postés 32 Date d'inscription mercredi 8 novembre 2006 Statut Membre Dernière intervention 12 avril 2015 - 26 févr. 2011 à 21:58
 jurams - 23 mai 2017 à 20:11
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/52835-minichat-multi-client

Merci beaucoup pour ce code très bien commenté.
wisar Messages postés 32 Date d'inscription mercredi 8 novembre 2006 Statut Membre Dernière intervention 12 avril 2015
23 mai 2012 à 10:39
je comprends pas se que tu veux dire, la réception des messages? car quand un des client envoie un message tout les autres clients connectes le reçoivent.
andoid Messages postés 106 Date d'inscription samedi 31 mars 2012 Statut Membre Dernière intervention 16 juin 2013
23 avril 2012 à 16:56
Je sais que ce poste date de 2011 mais voila j'essaye de comprendre ton code pour je voulais modifier ton code genre la réception ne vient pas du client qui vient juste de se connecter mais de n'importe quel client comment dois je faire
Merci
wisar Messages postés 32 Date d'inscription mercredi 8 novembre 2006 Statut Membre Dernière intervention 12 avril 2015
16 janv. 2012 à 08:35
dsl je ne pourrai pas t'aider car je ne connais pas le java
Rotsycs Messages postés 15 Date d'inscription vendredi 19 septembre 2008 Statut Membre Dernière intervention 10 janvier 2012
10 janv. 2012 à 08:23
lu!
je suis en train d'élaborer un programme de tchat en java netbeans maintenant et j'ai un petit soucis concernant l'authentification du client dans la base de données du serveur!
svp! si vous pouvez m'aider! c serai vraiment cool!
wisar Messages postés 32 Date d'inscription mercredi 8 novembre 2006 Statut Membre Dernière intervention 12 avril 2015
2 mars 2011 à 15:54
lol oui c'est peut etre un peut vrai, j'ai essayer de corriger au mieux mon code en suivant tes conseil, si tu voit autre chose n'hesite pas lache toi.lol
cs_frozon Messages postés 24 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 30 novembre 2008
2 mars 2011 à 14:57
[parenthèse hors sujet mais pas trop]
C'est plus qu'une histoire de gout pour l'anglais dans le code quelque language de programmation offre du code 100% en français.
Ex: Si, fin de si, Boucle, fin de boucle, tant que, fin tant que (dans 4D par exemple)
Après a mon avis c'est plus cohérent d'avoir while(alive) {} plutôt que if(en_vie){}
/parenthèse
wisar Messages postés 32 Date d'inscription mercredi 8 novembre 2006 Statut Membre Dernière intervention 12 avril 2015
2 mars 2011 à 14:48
ah ben voila sa c'est du comentaire.
Alors quelques explication, je cherche en rien a m'excuser, je sais que j'ai plaint de defauts en prog.
Alors tout d'abord je parle et ecrit l'anglais assez bien(je tiendrai pas une convers de 2 heure avec un british mais bon)
pour se qui est des variables et fonction en francais, c'est que je trouve dommage que aucun prog soit ecrit en francais mais quasi tout le temps en anglais, n'ayons pas honte de notre langue lol, mais comme tu la dit c'est une histoire de gout.
Par contre c'est vrai qu'au niveau " des regles orthographique" tel que majuscule ou pas majuscule sur les variables j'avoue que c'est du grand n'importe quoi et je vai essayer de me corriger
Pour se qui est des variables anglais/francais en fait je me suis appuyer sur un autre bout de prog ou les variables etaient en anglais et j'ai pas pris la peine de les changer.
Bon fini les explications place a la programation.
merci encore.
cs_frozon Messages postés 24 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 30 novembre 2008
2 mars 2011 à 09:12
Salut,
Pour bien faire, et vu que ce n'est pas trop trop de changement, il aurait était sympa de voir un code win32/linux
L'initialisation est la même juste besoin d'enelever les WSA* et de rajouter quelque #ifdef

Ensuite, pour ma part je plus suis partisan du memset dans ce cas: bufferSend[0]='\0';
memset(bufferSend, '\0', 512);

C'est aussi dommage que tu face une boucle qui peut etre infini dans ce cas ci:
do
{
error = connect(sock, (SOCKADDR *)&sin, sizeof sin);//on essaye de se connecte au serveur
Sleep(1000);// on attend 1 seconde avant de reesayer (pour eviter de charge le processeur
}
while (error == SOCKET_ERROR);//tant que l'on arrive pas a se connecter

Tu devrais mettre en place un nombre maximal de tentative, ce serait plus propre.

Mais bon la chose qui me choque le plus ce sont les nom de méthode en français, les nom de variable un coup en français, un coup en anglais.
Pour ma part je ne suis pas pour du code en français mais ce n'est qu'un avis personnel sachant que tout développeur doit être en mesure et lire et écrire de l'anglais pour uniformiser son code mais aussi lire les docs. Pour les messages que tu affiches en console par contre je suis d'accord qu'ils peuvent rester en français bien sur ;)

Concernant aussi les noms de variable, certains commence par une minuscule, d'autres par une majuscule, idem, pour plus de propreté il faudrait homogénéiser tout cela.

Pour les commentaires, c'est pas trop trop mal il y en a et plus ou moins constructif c'est une bonne chose, la seul chose à noter c'est que pour savoir ce que fait une fonction et ce qu'elle retourne on est obliger de la lire de A à Z. Ce pourrait être pas mal d'avoir un commentaire multi ligne en début de fonction pour pousser le vice jusqu'au bout ;)

Sinon dans l'ensemble c'est pas trop trop mal, reste a bouquiner un peu la doc sur les threads :p
wisar Messages postés 32 Date d'inscription mercredi 8 novembre 2006 Statut Membre Dernière intervention 12 avril 2015
1 mars 2011 à 16:54
c'est vrai, je n'y avait pas pensé, je prends ta remarque en compte et si d'autre gens voient d'autre modification a faire j'ajouterai la tienne en même temps
kertimanoff Messages postés 75 Date d'inscription samedi 3 décembre 2005 Statut Membre Dernière intervention 30 juin 2013
28 févr. 2011 à 08:46
Salut, bon j'suis pas un pro, t'a source m'intéresse donc je jette un oeil, et puis comme tu veux un commentaire alors:
dans t'a structure client, la variable Connecte n'a que 2 état possible (0 ou 1), alors pourquoi pas bool plutôt que int ?
Bon courage, en espérant que des vrai pro viennent faire la mega critique (constructive) de ta source !
wisar Messages postés 32 Date d'inscription mercredi 8 novembre 2006 Statut Membre Dernière intervention 12 avril 2015
26 févr. 2011 à 21:58
un peu déçu, lol pas de petit commentaire, je pensais déchainer les foule avec mon prog lol.
Rejoignez-nous