ESIP MESSENGER - CHAT COMPLET (TRANSFERT DE FICHIERS, SMILEYS ET BIEN D'AUTRES C
vinc1008881
Messages postés257Date d'inscriptiondimanche 22 août 2004StatutMembreDernière intervention29 septembre 2010
-
24 août 2005 à 10:02
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 2023
-
4 déc. 2009 à 22:43
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 4 déc. 2009 à 22:43
Quel est l'intérêt de supprimer la couleur violette ?
Et la supprimer de où ? D'une image ? D'un bouton ? D'un bouton-image ? De la possibilité de mettre le texte de cette couleur ? De la coloration automatique des évènements ?
cs_majj
Messages postés4Date d'inscriptionlundi 16 novembre 2009StatutMembreDernière intervention 4 décembre 2009 4 déc. 2009 à 15:38
SALUT victorcosine
je veut supprimer le couleur violet. je le supprime leur instruction de code mais quand je revient a l'interface je le trouve et quand je tester il fonctionne
cs_majj
Messages postés4Date d'inscriptionlundi 16 novembre 2009StatutMembreDernière intervention 4 décembre 2009 4 déc. 2009 à 15:36
SALUT victorcosine
je veut supprimer le couleur violet. je le supprime leur instruction de code mais quand je revient a l'interface je le trouve et quand je tester il fonctionne
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 4 déc. 2009 à 15:04
Merci de bien lire les pseudo (au pire tu fais un copier / coller).
Essaye de faire des phrases que j'arrive à comprendre sinon je ne peux pas te répondre.
Si tu utilises un traducteur automatique je préfère que t'écrive directement en Anglais.
cs_majj
Messages postés4Date d'inscriptionlundi 16 novembre 2009StatutMembreDernière intervention 4 décembre 2009 4 déc. 2009 à 14:30
Merci victorcosine
je peut faire modification a l'interface (les bouton, les sons..)et je la modifer a la code source mais rien de changement sur l'interface
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 2 déc. 2009 à 17:23
Tu modifies le code source et tu recompiles.
Si ma réponse ne te convient pas c'est que ta question n'est pas exprimée de façon explicite.
cs_majj
Messages postés4Date d'inscriptionlundi 16 novembre 2009StatutMembreDernière intervention 4 décembre 2009 2 déc. 2009 à 15:20
bravo pour ton programme, il est vraiment intéressant! Ceci dit, j'avais une question, comment faire modification sur cette application (changement de bouton, son ..)
Merci pour tout!
P.S: Cette question peut être répondu par n'importe qui sur ce forum si vous avez des propositions!
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 12 juin 2009 à 12:04
Tu refais entièrement le programme.
Tu n'utilise plus les sockets mais les API de fichiers Windows.
Rou25
Messages postés16Date d'inscriptionlundi 30 octobre 2006StatutMembreDernière intervention10 juin 2009 12 juin 2009 à 11:49
salut,
bravo pour ton programme, il est vraiment intéressant! Ceci dit, j'avais une question, si jamais je veut faire un chat pas via une adresse IP mais via un port série. Je fais comment?
Merci pour tout!
P.S: Cette question peut être répondu par n'importe qui sur ce forum si vous avez des propositions!
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 17 mars 2006 à 22:28
Merci JoeBarGlut.
Moi aussi je suis en train de programmer un multi clients donc avec un serveur dédié.
En fait je copie msn, car il y a un système de compte et donc identification et boite mail.
Le programme porte de doux nom d'ESIP Messenger 2.
Original non ?
D'ailleurs je mets de temps en temps à jour le site dédié (http://esip.messenger.free.fr) avec l'exécutable au fur et à mesure de l'évolution du projet.
Si tu veux tu peux tjs y jeter un oeil.
Bon courage pour la suite.
YOYO, @+.
JoebarGlut
Messages postés111Date d'inscriptionmercredi 13 août 2003StatutMembreDernière intervention17 octobre 2007 17 mars 2006 à 08:38
Jolie source, bravo.
Je suis en train de faire quasiment la meme chose avec du multiclient, serveur dedié donc et un mini p2p pour les fichiers... J'ai presque la meme façon de coder que toi (bcp de sprintf, j'aime pas les pointeurs non plus lol) et un peu plus cacafouilla donc je me repere avec des tonnes de commentaires et si je lache ma source pendant 1 mois, c'est environ 1 mois pour me relire lol. Peut etre que je le posterais une fois terminé et finalisé.
Ta source me sera surement utile, merci :)
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 19 févr. 2006 à 20:48
Ok ça fonctionne merci
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 19 févr. 2006 à 20:31
Déjà il faut que tu soit sous Dev-C++ sinon ce qui suit ne marchera pas.Il faut que tu mettes la librairie libfreeimage.a dans le dossier "lib" de dev-c++ et après ça devrait rouler et de même pour libbz2.a.
YOYO, @+.
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 19 févr. 2006 à 20:29
Ah bon. Mais encore un problème. Quand je compile la source un message apparait en disant: cannot find -lfreeimage
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 19 févr. 2006 à 20:25
C'est que tu as dû seulement cliqué sur la croix.Ca fonctionne comme MSN messenger.Pour fermer complètement il faut soit cliquer sur le bouton quitter, soit sur quitter dans le menu actions ou encore faire un clic droit sur le petit icone du systray justement et cliquer sur quitter.
J'espère avoir répondu à ta question.
YOYO, @+.
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 19 févr. 2006 à 20:19
Quel programme. Magnifique 10/10. Juste une petite question. C'est tu normal que quand tu quitter, il reste le petit icon dans le systray?
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 26 janv. 2006 à 17:59
Et voilà une petite mise à jour. Dites-moi ce que vous en pensez par rapport aux remarques qui ont été faites.
Merci d'avance.
YOYO, @+.
anonyme_man_in_this_world
Messages postés161Date d'inscriptionsamedi 25 juin 2005StatutMembreDernière intervention 1 août 2006 9 janv. 2006 à 12:25
merçi YoYo269 pour tes explications .a part ça ,je crois que j'ai
trouvé la fonction qui etablie la liaison entre les boites de
dialogues et les sockets:il s'agit WSAAsyncSelect() .Selon mes
recherches ,elle permet de recuperer des messages de type
FD_CONNECT.J'ai lu la documentation fourni par MSDN sans pouvoir bien
comprendre le principe.en tout cas,j'aurais bien aimé que vous
m'expliqué un peu son fonctionnement.
merçi d'avance.
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 8 janv. 2006 à 15:39
Ah non pardon ça n'est pas dans la notice, c'est dans un autre pdf.Si tu le veux, passe moi ton mail en mesage perso.Et c'est valable pour tout le monde bien entendu.
YOYO, @+.
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 8 janv. 2006 à 15:34
En fait dans l'application, je crée un socket client et un socket serveur.Chaque socket a son propre rôle, un envoie et l'autre reçoit.Mais lis la notice, ça doit être expliqué dedans.
En tous cas merci pour le compliment, même si extraordinaire est un peu fort.
YOYO,@+.
anonyme_man_in_this_world
Messages postés161Date d'inscriptionsamedi 25 juin 2005StatutMembreDernière intervention 1 août 2006 8 janv. 2006 à 14:51
je trouve ce programme extraordinaire (10/10) .
a part ça ,je voudrais demander ton aide à propos de la connection
multitheading .pe tu m'expliquer un peu comment tu as geré le
chat entre le client et le server d'une maniere simultané ?
merçi d'avance .
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 14 déc. 2005 à 11:46
Merci ekinoxjp ! C'est sympa !
YOYO, @+.
cs_ekinoxjp
Messages postés43Date d'inscriptionsamedi 30 avril 2005StatutMembreDernière intervention18 septembre 2011 13 déc. 2005 à 22:30
Je n'ai pas grand chose à dire à part
qu'il est excellent ce programme ! ^^
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 30 oct. 2005 à 18:17
Ok. Merci vecchio56.
YOYO, @+.
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 30 oct. 2005 à 15:52
Je pense que le C++ offre de belles possibilités de ce coté avec la classe ostringstream.
Je n'ai pas regardé comment c'est fait, mais a mon avis c'est assez performant, et on n'a à s'occuper de rien.
Par contre, je pense qu'il y a des problèmes de réallocation fréquente, dès que la chaine augmente.
Ce sont des affirmations gratuites, je suis jamais allé voir comment c'est fair à l'intérieur
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 29 oct. 2005 à 13:11
__declspec(naked) int __fastcall bntrim(char* psrc) // retour nombre char
{ // ECX = psrc
__asm {
mov [esp-4], ecx
mov eax, ecx
Ltrm1:
mov dl, [ecx]
inc ecx
cmp dl, 32
je short Ltrm1
dec ecx ; // 1er char != 32
dec eax
Ltrm2:
mov dl, [ecx]
inc eax
inc ecx
mov [eax], dl
test dl, dl
jnz short Ltrm2
mov ecx, [esp-4] ; // eax est zero final
Ltrm3:
mov byte ptr[eax], 0
cmp eax, ecx
jna short Ltrm4
dec eax
cmp byte ptr[eax], 32
je short Ltrm3
inc eax
Ltrm4:
sub eax, ecx
ret 0
}
}
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 29 oct. 2005 à 11:55
OUPS, faute de frappe, pas de '*'.
char sz[200], *c, *d;
d sz; c "youpi";
while(*d = *c) {c++; d++}; // d FINIT SUR FIN DE sz
c = "1er strcat";
while(*d = *c) {c++; d++}; // d FINIT ENCORE SUR FIN DE sz
c = "2eme strcat";
while(*d = *c) {c++; d++};
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 29 oct. 2005 à 11:48
char sz[200];
1: strcpy(sz, "youpi");
2: strcat(sz, "1er strcat");
3: strcat(sz, "2eme strcat");
En 2, le compilo écrira un parcours de psz depuis son début pour aller au zéro final et faire le strcpy de "1er strcat", en 3 il recommencera cette opération TRES stupide alors qu'il aurait pu avoir direct le pointeur sur fin de chaine et faire un simple strcpy. Un strcat est strlen+strcpy.
EXEMPLE:
char sz[200], *c, *d;
d sz; *c "youpi";
while(*d = *c) {c++; d++}; // d FINIT SUR FIN DE sz
*c = "1er strcat";
while(*d = *c) {c++; d++}; // d FINIT ENCORE SUR FIN DE sz
*c = "2eme strcat";
while(*d = *c) {c++; d++}; // d FINIT ENCORE SUR FIN DE sz
etc... et on n'a jamais parcouru sz plusieurs fois pour chainer.
LTRIM:
c = chaine;
while(*c == ' ') c++; // JUSQU'au 1er CARAC NON ' '
if(c != chaine) strcpy(chaine, c); // FINI
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 29 oct. 2005 à 11:23
Et d'ailleurs de même pour remplacer un strcat et un strlen.
YOYO, @+.
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 29 oct. 2005 à 11:22
vecchio56 -> "...le nombre de strlen/strcat/sprintf me fait assez peur"
Urgo -> "Tout simplement à cause des perfs, travailler avec des pointeurs (entre autres) c'est bien plus rapide (sprintf a un nombre d'arguments indéterminé, etc...)."
Pouvez-vous me dire comment faire (avec des pointeurs par exemple) pour remplacer un sprintf avec plusieurs arguments (entier et char)
Ex : sprintf(Temp, "%d%s%s", Rapport / 10, " % - ", NomDuFich);
Merci d'avance.
YOYO, @+.
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 29 oct. 2005 à 09:23
Ben voilà ! C'est normal que ça ne fonctionne pas.
Parce que en faisant un envoi de fichier sur la même machine ça crée des conflits internes de variables.
Donc c'est normal.
YOYO, @+.
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 28 oct. 2005 à 23:14
Pas en réseau local mais avec 127.0.0.1 !
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 28 oct. 2005 à 23:02
Bon ben chez moi ça fonctionne à partir de Winrar et en réseau local.
Donc là je vois pas.
YOYO, @+.
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 28 oct. 2005 à 22:52
Si il faut aller dans les options et chocher en 4)
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 28 oct. 2005 à 22:42
Je viens d'essayer à partir de winrar et la demande d'envoi de capture ne se fait même pas.
Tu as essayé en extrayant tout ?
YOYO, @+.
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 28 oct. 2005 à 22:37
WinRAR le décompresse dans un dossier temporaire.
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 28 oct. 2005 à 22:34
1) Connexion
2) Envoi d'un fichier qui echou
3) Clique une fois sur capture
4) Options et cocher
5) Recapture
6) OK pour envoyer
7) plantage
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 28 oct. 2005 à 22:29
Ah oui forcément !
Décompresse le complètement sur un disque dur et réessaie.
YOYO, @+.
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 28 oct. 2005 à 22:27
Je le lance depuis WinRAR !
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 28 oct. 2005 à 22:26
Me prends pas pour une bille quand même, je te rappelle que c'est moi qui ait fait le code.
Est-ce que tu exécutes esip_messenger.exe depuis un lecteur réseau (du genre z:)?
Est-ce que le prog plante à chaque coup ?
C'est des choses dans ce genre que je veux savoir.
YOYO, @+.
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 28 oct. 2005 à 22:20
Tu vas dans les options et tu coche envoyer la cature.
Ensuite tu clique sur capture pour te l'envoyer en local et .....
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 28 oct. 2005 à 22:02
Excuse-moi victorcoasne, mais est-ce que tu as plus de détails pour le plantage lors de l'envoi de capture d'écran ?
Parce que chez moi j'arrive pas à le faire planter.(un comble lol)
YOYO, @+.
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 27 oct. 2005 à 11:57
Ah oui c'est vrai ! J'avais oublié ce bug à la con.
Merci victorcoasne de me le rappeler. Il me semble que l'envoi de capture d'écran par internet fonctionne bien mais en local ya un bug.
Je vais essayer de voir ça.
Encore merci.
YOYO, @+.
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 27 oct. 2005 à 11:53
Ok d'accord super source!
J'ai réussi tout de même à le faire planter !
J'ai fait une capture d'écran je que j'ai envoyé en local mais peut être qu'il y a d'autres facteur en rapport avec ce que j'avais fait avant !
Bonne prog,
@++
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 27 oct. 2005 à 11:48
Oui bien sûr !
Ce que je veux dire c'est qu'il n'y a pas un programme spécifique serveur à faire tourner à part, il est inclus dans chaque exe lancé.
YOYO, @+.
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 27 oct. 2005 à 11:41
Salut,
J'ai pas encore eu le temps de regarder la source mais il est obligé d'avoir 1 serveur parmi les deux (enfin il me semble).
Sinon comment deux client peuvent savoir sans écouter qu'on veut se connecter ?
Bonne prog,
@++
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 9 oct. 2005 à 09:35
Préviens-moi Gabber059 si c'est bon.
YOYO, @+.
Gabber059
Messages postés6Date d'inscriptiondimanche 25 septembre 2005StatutMembreDernière intervention18 septembre 2008 9 oct. 2005 à 09:26
a dsl j'avais pas vu les lien, je vai réésayer
Gabber059
Messages postés6Date d'inscriptiondimanche 25 septembre 2005StatutMembreDernière intervention18 septembre 2008 9 oct. 2005 à 09:25
moi il me dit quil ne trouve pas les images (sous Dev C++ 4.9.9.1) et c'est vrai je ne les trouve pas dans le zip, un ptit coup de main svp merci d'avance
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 5 sept. 2005 à 20:31
LTrim pas beau du tout.
strlen pour quoi faire ?
char *c = chaine;
Tant que *c == ' ' j'avance pointeur
if(c != chaine) strcpy(chaine, c); FINI !!!
les autres sur ce principe.
Retourner ce qu'on reçoit, quel intérêt ? donne plutot le pointeur sur fin, au moins sera utile.
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 5 sept. 2005 à 19:58
Alors ça me fait plaisir d'avoir convertit qq'un au monde des logiciels libres !
Un nouveau monde est en marche !!! LOL
YOYO, @+.
cgmorpheus
Messages postés10Date d'inscriptionjeudi 4 novembre 2004StatutMembreDernière intervention16 novembre 2005 5 sept. 2005 à 19:53
Rien que pour cette source j'ai pris DevC++ (v4.9.9.2)
Déjà bonne surprise il est en français Cool
et ta source a compiler du premier coup.
Alors merci encore pour ta source.
Sans elle je me serai jamais essayer DevC++ ;-)
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 5 sept. 2005 à 07:51
Ah enfin ! Le commentaire de BruNews tant attendu est arrivé ! Merci MAITRE ! LOL.
Je dois t'avouer que je suis tout de même un peu déçu, parce que je m'attendais à plus de détails et de critiques dans ton message. Mais bon.
En tous cas, merci bcp d'avoir pris du temps.
YOYO, @+.
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 5 sept. 2005 à 07:48
Merci cgmorpheus ! Très sympa comme commentaire. Par contre, désolé pour VS 2003, mais il te faudra l'adapter un peu. Je préfère bosser avec dev-c++, parce que t'en qu'à faire autant prendre un compilateur gratuit de qualité.
YOYO, @+.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 4 sept. 2005 à 10:48
Belle présentation.
Pour le code, je pense que vecchio, Urgo et aardman ont déjà dit l'essentiel.
cgmorpheus
Messages postés10Date d'inscriptionjeudi 4 novembre 2004StatutMembreDernière intervention16 novembre 2005 3 sept. 2005 à 14:26
super bien ce prog et ça marche même avec l'adresse domaine pour ceux qui ont une IP dynamique(et un prog genre No-IP).
Dommage que je puisse pas la compiler avec mon VS 2003.
Sinon c'est Super balaise !!!
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 1 sept. 2005 à 06:36
Ouah ! quelle éloge ! Merci beaucoup pixelinf ça me fait vraiment très plaisir.
YOYO, @+.
pixelinf
Messages postés15Date d'inscriptionsamedi 30 avril 2005StatutMembreDernière intervention30 avril 2006 31 août 2005 à 23:43
Félicitation pour votre source, elle est merveilleuse ! Bonne continuation.
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 25 août 2005 à 22:22
Merci bcp cali70. C'est super sympa mais le mérite ne revient pas qu'à moi. Mon camarade m'a bcp aidé à faire ce programme et la notice n'est que de lui. Donc ce compliment est pour lui.
Mais merci quand même.
YOYO, @+.
cali70
Messages postés71Date d'inscriptionmercredi 29 septembre 2004StatutMembreDernière intervention19 mars 2008 25 août 2005 à 22:15
J'aimerais ajouter parce que personne n'en parle que la notice est très bien faite et agréable à lire...
+++
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 25 août 2005 à 21:49
Ah tiens ! Faudra que je regarde à ce petit bug un peu stupide.
En tous cas merci cali70 de me le signaler. C'est le genre de trucs tout bête auquel on ne fait pas attention et qui a pourtant son importance.
YOYO, @+.
cali70
Messages postés71Date d'inscriptionmercredi 29 septembre 2004StatutMembreDernière intervention19 mars 2008 25 août 2005 à 21:44
Très bien j'ai beaucoup aimé, ca fait plaisir de voir une interface soignée, c'est rare.
Sinon l'étentiel a été dis je pense, je voudrais juste signaler que lorsque le transfert de fichier ne marche pas il y'a tout de même inscrit ds la fenêtre de chat ">>> Vous avez envoyé 'truc.txt' avec succès ! <<<".
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 25 août 2005 à 15:49
Ca c'est la poisse. Faudrait voir comment on peut le contourner.
Essaie en changeant le numéro de port de communication.
De mémoire c'est 60000 et 60001 je crois pour l'instant.
YOYO, @+.
Arnaud16022
Messages postés1329Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention16 juin 20102 25 août 2005 à 15:35
bah oui qd meme l'IP je l'avais mise ^^
pas d'antivurus
le pare-feu de mon FAI; innacessible :'(
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 25 août 2005 à 12:58
Déjà pense bien à essayer de te connecter avec son IP internet.
Ensuite il faut se méfier de tout se qui bloquer la connexion.
Comme par exemple un pare-feu ou un antivirus (surtout norton d'ailleurs je crois).
YOYO, @+.
Arnaud16022
Messages postés1329Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention16 juin 20102 25 août 2005 à 12:11
hum
j'ai essayé hier soir avec un copain...
impossible de se connecter.
ni dans un sens ni dans l'autre.
c'est pas forcément dû au prog, c'est tres vraisemblablement mon FAI.
quelqu'un peut confirmer ?
gagah1
Messages postés509Date d'inscriptionsamedi 28 juin 2003StatutMembreDernière intervention 3 août 2010 25 août 2005 à 08:14
A part les petites remarques d'Aardman et Urgo, l'interface est superbe. 9/10.
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 25 août 2005 à 07:47
Et ben merci bcp Arnaud16022, ça me fait super plaisir.
Bonne utilisation et n'hésite pas à me dire si tu trouves des bugs.
D'ailleurs j'en profite pour préciser que ce programme nécessite Windows2000/XP ou supérieur.
YOYO, @+.
Arnaud16022
Messages postés1329Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention16 juin 20102 24 août 2005 à 23:34
O_o
wow
bah super quoi :p
je n'ai essayé qu'avec 127.0.0.1 comme IP, meme comme ca ca marche.
en tout cas c'est super, interface comme on en voit rarement sur ce site; tout plin de fonctions sympas.
pa encore regardé le code pas le temps
10/10 qd meme
ad
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 24 août 2005 à 19:03
Ah ok ! C'est ce à quoi je pensais mais j'étais pas certain. Merci quand même.
YOYO, @+.
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 24 août 2005 à 18:52
Salut,
C'est quand tu alloues de la mémoire sans la désalouer.
Chaque malloc doit avoir son free,
Chaque new doit avoir son delete, etc..
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 24 août 2005 à 18:45
Ok merci aardman pour tes remarques.
Juste une petite chose, tu peux m'expliquer ce qu'est un memory leak ?
YOYO, @+.
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 24 août 2005 à 18:30
Salut,
Une autre petite remarque a propos du traitement du M_PAINT:
BeginPaint(frmhWnd, &PaintStruct);
hDC = GetDC(frmhWnd);
ReleaseDC(frmhWnd, hDC);
EndPaint(frmhWnd, &PaintStruct);
Normalement on appele pas GetDC() pour obtenir le hDC, il faut utiliser celui retourné par BeginPaint().
Mais vu que tu ne dessine rien, autant ne pas traiter le message (la DefWindowProc() s'en chargera).
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 24 août 2005 à 18:21
Salut,
deux petites remarques:
- Dans tes fonctions Left/Mid/Right tu fais:
static char Resultat[] = "";
strncpy(Resultat, ...);
Resultat est un tableau de 1 char, le strncpy devrait planter...
- dans ta fonction PrendreTexte(), tu alloues un bloc de mémoire pour stocker le texte et tu retournes un pointeur sur ce bloc, je pense qu'il y a un memory leak.
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 24 août 2005 à 18:09
Ah merci beaucoup pour l'info. J'essaierai de corriger ça.
Mais comme j'ai un peu de mal avec les pointeurs de temps en temps, j'ai préféré la facilité pour arriver plus vite au résultat voulu.
Comme vous le voyez je suis loin d'être un pro en matière de programmation.
YOYO, @+.
cs_Urgo
Messages postés780Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention16 avril 20091 24 août 2005 à 17:55
Tout simplement à cause des perfs, travailler avec des pointeurs (entre autres) c'est bien plus rapide (sprintf a un nombre d'arguments indéterminé, etc...).
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 24 août 2005 à 17:42
Ah oui ? Et pourquoi ça vecchio56 ?
Ca m'intéresse bcp. Tu peux développer ?
YOYO, @+.
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 24 août 2005 à 17:40
Aïe! Pourquoi tu mets tout dans un .h comme ca?
A part ca, le nombre de strlen/strcat/sprintf me fait assez peur
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 24 août 2005 à 17:39
Ca y est je viens de mettre en ligne la deuxième archive WinRAR avec la totalité des fichiers utiles à la compilation.
YOYO, @+.
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 24 août 2005 à 13:21
Merci vinc1008881, c'est sympa.
J'attends ton avis avec impatience. Si tu as qq chose à redire, explique le plus clairement possible, ça me sera très utile.
YOYO, @+.
vinc1008881
Messages postés257Date d'inscriptiondimanche 22 août 2004StatutMembreDernière intervention29 septembre 20103 24 août 2005 à 10:02
A la voila ta source, je m'y met tt de suite, sa a l'air super.....
4 déc. 2009 à 22:43
Et la supprimer de où ? D'une image ? D'un bouton ? D'un bouton-image ? De la possibilité de mettre le texte de cette couleur ? De la coloration automatique des évènements ?
4 déc. 2009 à 15:38
je veut supprimer le couleur violet. je le supprime leur instruction de code mais quand je revient a l'interface je le trouve et quand je tester il fonctionne
4 déc. 2009 à 15:36
je veut supprimer le couleur violet. je le supprime leur instruction de code mais quand je revient a l'interface je le trouve et quand je tester il fonctionne
4 déc. 2009 à 15:04
Essaye de faire des phrases que j'arrive à comprendre sinon je ne peux pas te répondre.
Si tu utilises un traducteur automatique je préfère que t'écrive directement en Anglais.
4 déc. 2009 à 14:30
je peut faire modification a l'interface (les bouton, les sons..)et je la modifer a la code source mais rien de changement sur l'interface
2 déc. 2009 à 17:23
Si ma réponse ne te convient pas c'est que ta question n'est pas exprimée de façon explicite.
2 déc. 2009 à 15:20
Merci pour tout!
P.S: Cette question peut être répondu par n'importe qui sur ce forum si vous avez des propositions!
12 juin 2009 à 12:04
Tu n'utilise plus les sockets mais les API de fichiers Windows.
12 juin 2009 à 11:49
bravo pour ton programme, il est vraiment intéressant! Ceci dit, j'avais une question, si jamais je veut faire un chat pas via une adresse IP mais via un port série. Je fais comment?
Merci pour tout!
P.S: Cette question peut être répondu par n'importe qui sur ce forum si vous avez des propositions!
17 mars 2006 à 22:28
Moi aussi je suis en train de programmer un multi clients donc avec un serveur dédié.
En fait je copie msn, car il y a un système de compte et donc identification et boite mail.
Le programme porte de doux nom d'ESIP Messenger 2.
Original non ?
D'ailleurs je mets de temps en temps à jour le site dédié (http://esip.messenger.free.fr) avec l'exécutable au fur et à mesure de l'évolution du projet.
Si tu veux tu peux tjs y jeter un oeil.
Bon courage pour la suite.
YOYO, @+.
17 mars 2006 à 08:38
Je suis en train de faire quasiment la meme chose avec du multiclient, serveur dedié donc et un mini p2p pour les fichiers... J'ai presque la meme façon de coder que toi (bcp de sprintf, j'aime pas les pointeurs non plus lol) et un peu plus cacafouilla donc je me repere avec des tonnes de commentaires et si je lache ma source pendant 1 mois, c'est environ 1 mois pour me relire lol. Peut etre que je le posterais une fois terminé et finalisé.
Ta source me sera surement utile, merci :)
19 févr. 2006 à 20:48
19 févr. 2006 à 20:31
YOYO, @+.
19 févr. 2006 à 20:29
19 févr. 2006 à 20:25
J'espère avoir répondu à ta question.
YOYO, @+.
19 févr. 2006 à 20:19
26 janv. 2006 à 17:59
Merci d'avance.
YOYO, @+.
9 janv. 2006 à 12:25
trouvé la fonction qui etablie la liaison entre les boites de
dialogues et les sockets:il s'agit WSAAsyncSelect() .Selon mes
recherches ,elle permet de recuperer des messages de type
FD_CONNECT.J'ai lu la documentation fourni par MSDN sans pouvoir bien
comprendre le principe.en tout cas,j'aurais bien aimé que vous
m'expliqué un peu son fonctionnement.
merçi d'avance.
8 janv. 2006 à 15:39
YOYO, @+.
8 janv. 2006 à 15:34
En tous cas merci pour le compliment, même si extraordinaire est un peu fort.
YOYO,@+.
8 janv. 2006 à 14:51
a part ça ,je voudrais demander ton aide à propos de la connection
multitheading .pe tu m'expliquer un peu comment tu as geré le
chat entre le client et le server d'une maniere simultané ?
merçi d'avance .
14 déc. 2005 à 11:46
YOYO, @+.
13 déc. 2005 à 22:30
qu'il est excellent ce programme ! ^^
30 oct. 2005 à 18:17
YOYO, @+.
30 oct. 2005 à 15:52
Je n'ai pas regardé comment c'est fait, mais a mon avis c'est assez performant, et on n'a à s'occuper de rien.
Par contre, je pense qu'il y a des problèmes de réallocation fréquente, dès que la chaine augmente.
Ce sont des affirmations gratuites, je suis jamais allé voir comment c'est fair à l'intérieur
29 oct. 2005 à 13:11
{ // ECX = psrc
__asm {
mov [esp-4], ecx
mov eax, ecx
Ltrm1:
mov dl, [ecx]
inc ecx
cmp dl, 32
je short Ltrm1
dec ecx ; // 1er char != 32
dec eax
Ltrm2:
mov dl, [ecx]
inc eax
inc ecx
mov [eax], dl
test dl, dl
jnz short Ltrm2
mov ecx, [esp-4] ; // eax est zero final
Ltrm3:
mov byte ptr[eax], 0
cmp eax, ecx
jna short Ltrm4
dec eax
cmp byte ptr[eax], 32
je short Ltrm3
inc eax
Ltrm4:
sub eax, ecx
ret 0
}
}
29 oct. 2005 à 11:55
char sz[200], *c, *d;
d sz; c "youpi";
while(*d = *c) {c++; d++}; // d FINIT SUR FIN DE sz
c = "1er strcat";
while(*d = *c) {c++; d++}; // d FINIT ENCORE SUR FIN DE sz
c = "2eme strcat";
while(*d = *c) {c++; d++};
29 oct. 2005 à 11:48
1: strcpy(sz, "youpi");
2: strcat(sz, "1er strcat");
3: strcat(sz, "2eme strcat");
En 2, le compilo écrira un parcours de psz depuis son début pour aller au zéro final et faire le strcpy de "1er strcat", en 3 il recommencera cette opération TRES stupide alors qu'il aurait pu avoir direct le pointeur sur fin de chaine et faire un simple strcpy. Un strcat est strlen+strcpy.
EXEMPLE:
char sz[200], *c, *d;
d sz; *c "youpi";
while(*d = *c) {c++; d++}; // d FINIT SUR FIN DE sz
*c = "1er strcat";
while(*d = *c) {c++; d++}; // d FINIT ENCORE SUR FIN DE sz
*c = "2eme strcat";
while(*d = *c) {c++; d++}; // d FINIT ENCORE SUR FIN DE sz
etc... et on n'a jamais parcouru sz plusieurs fois pour chainer.
LTRIM:
c = chaine;
while(*c == ' ') c++; // JUSQU'au 1er CARAC NON ' '
if(c != chaine) strcpy(chaine, c); // FINI
29 oct. 2005 à 11:23
YOYO, @+.
29 oct. 2005 à 11:22
Urgo -> "Tout simplement à cause des perfs, travailler avec des pointeurs (entre autres) c'est bien plus rapide (sprintf a un nombre d'arguments indéterminé, etc...)."
Pouvez-vous me dire comment faire (avec des pointeurs par exemple) pour remplacer un sprintf avec plusieurs arguments (entier et char)
Ex : sprintf(Temp, "%d%s%s", Rapport / 10, " % - ", NomDuFich);
Merci d'avance.
YOYO, @+.
29 oct. 2005 à 09:23
Parce que en faisant un envoi de fichier sur la même machine ça crée des conflits internes de variables.
Donc c'est normal.
YOYO, @+.
28 oct. 2005 à 23:14
28 oct. 2005 à 23:02
Donc là je vois pas.
YOYO, @+.
28 oct. 2005 à 22:52
28 oct. 2005 à 22:42
Tu as essayé en extrayant tout ?
YOYO, @+.
28 oct. 2005 à 22:37
28 oct. 2005 à 22:34
2) Envoi d'un fichier qui echou
3) Clique une fois sur capture
4) Options et cocher
5) Recapture
6) OK pour envoyer
7) plantage
28 oct. 2005 à 22:29
Décompresse le complètement sur un disque dur et réessaie.
YOYO, @+.
28 oct. 2005 à 22:27
28 oct. 2005 à 22:26
Est-ce que tu exécutes esip_messenger.exe depuis un lecteur réseau (du genre z:)?
Est-ce que le prog plante à chaque coup ?
C'est des choses dans ce genre que je veux savoir.
YOYO, @+.
28 oct. 2005 à 22:20
Ensuite tu clique sur capture pour te l'envoyer en local et .....
28 oct. 2005 à 22:02
Parce que chez moi j'arrive pas à le faire planter.(un comble lol)
YOYO, @+.
27 oct. 2005 à 11:57
Merci victorcoasne de me le rappeler. Il me semble que l'envoi de capture d'écran par internet fonctionne bien mais en local ya un bug.
Je vais essayer de voir ça.
Encore merci.
YOYO, @+.
27 oct. 2005 à 11:53
J'ai réussi tout de même à le faire planter !
J'ai fait une capture d'écran je que j'ai envoyé en local mais peut être qu'il y a d'autres facteur en rapport avec ce que j'avais fait avant !
Bonne prog,
@++
27 oct. 2005 à 11:48
Ce que je veux dire c'est qu'il n'y a pas un programme spécifique serveur à faire tourner à part, il est inclus dans chaque exe lancé.
YOYO, @+.
27 oct. 2005 à 11:41
J'ai pas encore eu le temps de regarder la source mais il est obligé d'avoir 1 serveur parmi les deux (enfin il me semble).
Sinon comment deux client peuvent savoir sans écouter qu'on veut se connecter ?
Bonne prog,
@++
9 oct. 2005 à 09:35
YOYO, @+.
9 oct. 2005 à 09:26
9 oct. 2005 à 09:25
5 sept. 2005 à 20:31
strlen pour quoi faire ?
char *c = chaine;
Tant que *c == ' ' j'avance pointeur
if(c != chaine) strcpy(chaine, c); FINI !!!
les autres sur ce principe.
Retourner ce qu'on reçoit, quel intérêt ? donne plutot le pointeur sur fin, au moins sera utile.
5 sept. 2005 à 19:58
Un nouveau monde est en marche !!! LOL
YOYO, @+.
5 sept. 2005 à 19:53
Déjà bonne surprise il est en français Cool
et ta source a compiler du premier coup.
Alors merci encore pour ta source.
Sans elle je me serai jamais essayer DevC++ ;-)
5 sept. 2005 à 07:51
Je dois t'avouer que je suis tout de même un peu déçu, parce que je m'attendais à plus de détails et de critiques dans ton message. Mais bon.
En tous cas, merci bcp d'avoir pris du temps.
YOYO, @+.
5 sept. 2005 à 07:48
YOYO, @+.
4 sept. 2005 à 10:48
Pour le code, je pense que vecchio, Urgo et aardman ont déjà dit l'essentiel.
3 sept. 2005 à 14:26
Dommage que je puisse pas la compiler avec mon VS 2003.
Sinon c'est Super balaise !!!
1 sept. 2005 à 06:36
YOYO, @+.
31 août 2005 à 23:43
25 août 2005 à 22:22
Mais merci quand même.
YOYO, @+.
25 août 2005 à 22:15
+++
25 août 2005 à 21:49
En tous cas merci cali70 de me le signaler. C'est le genre de trucs tout bête auquel on ne fait pas attention et qui a pourtant son importance.
YOYO, @+.
25 août 2005 à 21:44
Sinon l'étentiel a été dis je pense, je voudrais juste signaler que lorsque le transfert de fichier ne marche pas il y'a tout de même inscrit ds la fenêtre de chat ">>> Vous avez envoyé 'truc.txt' avec succès ! <<<".
25 août 2005 à 15:49
Essaie en changeant le numéro de port de communication.
De mémoire c'est 60000 et 60001 je crois pour l'instant.
YOYO, @+.
25 août 2005 à 15:35
pas d'antivurus
le pare-feu de mon FAI; innacessible :'(
25 août 2005 à 12:58
Ensuite il faut se méfier de tout se qui bloquer la connexion.
Comme par exemple un pare-feu ou un antivirus (surtout norton d'ailleurs je crois).
YOYO, @+.
25 août 2005 à 12:11
j'ai essayé hier soir avec un copain...
impossible de se connecter.
ni dans un sens ni dans l'autre.
c'est pas forcément dû au prog, c'est tres vraisemblablement mon FAI.
quelqu'un peut confirmer ?
25 août 2005 à 08:14
25 août 2005 à 07:47
Bonne utilisation et n'hésite pas à me dire si tu trouves des bugs.
D'ailleurs j'en profite pour préciser que ce programme nécessite Windows2000/XP ou supérieur.
YOYO, @+.
24 août 2005 à 23:34
wow
bah super quoi :p
je n'ai essayé qu'avec 127.0.0.1 comme IP, meme comme ca ca marche.
en tout cas c'est super, interface comme on en voit rarement sur ce site; tout plin de fonctions sympas.
pa encore regardé le code pas le temps
10/10 qd meme
ad
24 août 2005 à 19:03
YOYO, @+.
24 août 2005 à 18:52
C'est quand tu alloues de la mémoire sans la désalouer.
Chaque malloc doit avoir son free,
Chaque new doit avoir son delete, etc..
24 août 2005 à 18:45
Juste une petite chose, tu peux m'expliquer ce qu'est un memory leak ?
YOYO, @+.
24 août 2005 à 18:30
Une autre petite remarque a propos du traitement du M_PAINT:
BeginPaint(frmhWnd, &PaintStruct);
hDC = GetDC(frmhWnd);
ReleaseDC(frmhWnd, hDC);
EndPaint(frmhWnd, &PaintStruct);
Normalement on appele pas GetDC() pour obtenir le hDC, il faut utiliser celui retourné par BeginPaint().
Mais vu que tu ne dessine rien, autant ne pas traiter le message (la DefWindowProc() s'en chargera).
24 août 2005 à 18:21
deux petites remarques:
- Dans tes fonctions Left/Mid/Right tu fais:
static char Resultat[] = "";
strncpy(Resultat, ...);
Resultat est un tableau de 1 char, le strncpy devrait planter...
- dans ta fonction PrendreTexte(), tu alloues un bloc de mémoire pour stocker le texte et tu retournes un pointeur sur ce bloc, je pense qu'il y a un memory leak.
24 août 2005 à 18:09
Mais comme j'ai un peu de mal avec les pointeurs de temps en temps, j'ai préféré la facilité pour arriver plus vite au résultat voulu.
Comme vous le voyez je suis loin d'être un pro en matière de programmation.
YOYO, @+.
24 août 2005 à 17:55
24 août 2005 à 17:42
Ca m'intéresse bcp. Tu peux développer ?
YOYO, @+.
24 août 2005 à 17:40
A part ca, le nombre de strlen/strcat/sprintf me fait assez peur
24 août 2005 à 17:39
YOYO, @+.
24 août 2005 à 13:21
J'attends ton avis avec impatience. Si tu as qq chose à redire, explique le plus clairement possible, ça me sera très utile.
YOYO, @+.
24 août 2005 à 10:02
bravo