Bonjour,

J'essaye d'utiliser select pour empecher que l'ecoute d'un port ne bloque toute ma boucle, malheuresement ca ne marche pas...


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
while(1)        
{
     FD_ZERO(&ensSck);      //ensemble initialiser a 0
     FD_SET(sck1,&ensSck);  //on ajoute sck1 a l'ensemble
     select(0,&ensSck,&ensSck,&ensSck,0); //ensemble a verifier
 
     if(FD_ISSET(sck1,&ensSck)!=0)
     {
     nbChar=recvfrom(sck1,strInv,STR_SIZE,0,(struct sockaddr*)&netInfo,&temp);
     strInv[nbChar]='\0';                                              
     printf("\ndonnes recu : %s\nde: %d.%d.%d.%d\n",strInv,netInfo.sin_addr.S_un.S_un_b.s_b1,
     netInfo.sin_addr.S_un.S_un_b.s_b2,
     netInfo.sin_addr.S_un.S_un_b.s_b3,
     netInfo.sin_addr.S_un.S_un_b.s_b4);
     nbChar=sendto(sck1,reverse(strInv,nbChar),nbChar,0,(struct sockaddr*)&netInfo,temp);
     }
     else
     {printf("Aucune données recu, je continue...\n");}
}