Crash de lapplication au moment de FD_READ ou FD_CLOSE
thejojo1
Messages postés13Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention28 août 2006
-
3 août 2005 à 23:57
thejojo1
Messages postés13Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention28 août 2006
-
4 août 2005 à 16:36
Voila un drôle de problème. J'ai codé un serveur en utilisant la fonction
WSAAsyncSelect(sock,hwnd,1025,FD_READ | FD_WRITE | FD_CLOSE | FD_ACCEPT);
Jarrive à me connecter dessus (avec netcat par ex) et a renvoyer des données.
Mais lorsque le client tente d'envoyer quelque chose ou de se déconnecter alors là pouf rien ne vas plus:
"l'instruction à "xxx" emploie l'adresse mémoire "xxx".La mémoire ne peut pas être "read".
Voila pour le code. Jarrive a me connecter et à envoyer un message avec le serveur mais si je veux envoyer un message avec le client, plantage.Merci de votre aide
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 4 août 2005 à 16:03
Salut,
Dans
MainWndProc(), lorsque tu fais un switch sur lParam
, tu as oublié tout les break apres chaque case.
Dans ta fonction
Receivedata(),
tu fais un strlen(buffer) sur un buffer non initialisé, ca peut etre mal. il faut utiliser sizeof(buffer) ici.
Enfin dans ta fonction Debog(), tu déclares un buffer certaintement
trop petit, 128 octets pour une fenetre qui va contenir des logs c'est
pas assez, car en plus tu prends tout le texte a chaque fois. Utilise
plutot les messages EM_SETSEL et EM_REPLACESEL pour rajouter ta ligne
de texte directement dans l'edit.