Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
644 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Recv et boucle en SDL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Recv et boucle en SDL

n°747035
toutoune
Posté le 01-06-2004 à 10:08:44  profilanswer
 

J'ai un bout de programme qui utilise SDL avec un écouteur sur la souris.
Mon problème c'est que j'ai une boucle infinie sur un recv pour reçvoir des messages du réseau.
Or cette boucle fait planter mon programme. Par contre si j'ajoute un écouteur de souris après la récéption d'un message et que je quitte cet écouteur pour revenir à ma boucle après un clic, là ça ne plante plus  :??:  
Je vois pas comment m'en sortir :(

mood
Publicité
Posté le 01-06-2004 à 10:08:44  profilanswer
 

n°747132
bjone
Insert booze to continue
Posté le 01-06-2004 à 12:02:04  profilanswer
 

attends j'esayes de me faire une représentation mentale de ton code...

n°747157
cricri_
Posté le 01-06-2004 à 12:14:25  profilanswer
 

:pt1cable:    :whistle:

n°747648
toutoune
Posté le 01-06-2004 à 16:52:25  profilanswer
 

pardon c'est vrai que chui pas très clair sur ce coup là!
voilà en gros ce que j'ai...
 

Code :
  1. sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
  2.    bind(sock,(SOCKADDR*)&sin,sizeof(sin));
  3.   if(connect(sock,(SOCKADDR*)&sin,sizeof(sin)))
  4.     {
  5.         drawString(sdlMainScreen,font1,40,350, "La connexion a echoue!" );
  6.     SDL_Flip(sdlMainScreen);
  7.     Sleep(2000);
  8.         exit(0);
  9.     }
  10.   SDL_BlitSurface(mainscr,NULL,sdlMainScreen,NULL);
  11.   infoline("Connexion effectuee" );
  12. char retour[1000][100];
  13. int a=0;
  14. while(0)
  15. {
  16. if(recv(sock,buffer,sizeof(buffer),0))
  17. {
  18.     itoa(a,convert,10);
  19.     infoline(convert);
  20.     a++;
  21. int quitboucle=0;
  22. while(quitboucle==0)
  23. {    SDL_Event event;
  24.         while (SDL_PollEvent (&event))
  25.         {
  26.             switch (event.type)
  27.             {
  28.                
  29.              case SDL_MOUSEBUTTONDOWN: {
  30.                  if (event.button.button==1)
  31.                               { infoline("clic" ); Sleep(1000); char buffer[1000]; quitboucle=1;}
  32.                  break;
  33.                  }
  34.              }
  35.         }
  36. }
  37. }


Message édité par toutoune le 01-06-2004 à 16:56:28
n°747733
bjone
Insert booze to continue
Posté le 01-06-2004 à 17:38:58  profilanswer
 

je suppose que le premier while(0) est à ignorer...
 
bon ton recv est bloquant.
soit tu le passes en non-bloquant, soit tu le mets dans un thread.

n°747741
bjone
Insert booze to continue
Posté le 01-06-2004 à 17:46:34  profilanswer
 
n°748164
toutoune
Posté le 01-06-2004 à 21:56:07  profilanswer
 

oui mais bloquant ou non, ce que je ne comprend pas c'est qu'il fasse planter l'interface en SDL! Parce que sans SDL, en ligne de commande dans la console MS DOS, ça passe!

n°749694
toutoune
Posté le 02-06-2004 à 23:05:15  profilanswer
 

ok merci, avec les threads ça passe!

n°751285
bjone
Insert booze to continue
Posté le 03-06-2004 à 19:06:36  profilanswer
 

attention à ta synchronisation entre tes threads !!!

n°751298
toutoune
Posté le 03-06-2004 à 19:14:27  profilanswer
 

c'est à dire?

mood
Publicité
Posté le 03-06-2004 à 19:14:27  profilanswer
 

n°751303
bjone
Insert booze to continue
Posté le 03-06-2004 à 19:16:20  profilanswer
 

bin suivant comment tu as architecturé ton code au niveau des variables qui sont alterées par le thread de réception, tu peux avoir des plantages si tu utilises pas des sémaphores.


Message édité par bjone le 03-06-2004 à 19:17:16

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Recv et boucle en SDL

 

Sujets relatifs
Boucle sur les nom de variables d'une classe ?access vba pb boucle impression ds fichier pdf + copie du fichier
[VB Excel] Faire une boucle correctepbm boucle
pbm boucle forFaire une boucle avec des Text Box en VB
[php] pb de variables dans une boucle avec un formulaire[C++] Compilateur C++ .NET 2003 / SDL > Problème à la compilation
Creation de JButton avec une boucle forHelp!! [boucle avec select]
Plus de sujets relatifs à : Recv et boucle en SDL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR