Bonjour a tous, j'ai parcouru de nombreux postes sur le net tentant de trouver une solution a mon problème, mais rien y fait ,je suis toujours bloquer.
J'utilise une boucle pour recevoir mes données sur ma socket et malgrè avoir utilisé la fonction (ioctlsocket) pour rendre mon socket NON BLOQUANT je n'arrive toujours pas a sortir de ma boucle du moins c'est ce que je pense puisque apres ma boucle en question ,je fait un simple (printf) et celui-ci ne fonctionne pas.J' ai aussi tenté d'utilisé (select) pour controler l'état de mes données sur ma socket, mais ça na pas marché non plus alors il semble que ce soit du a ma boucle.Je poste le code ,si une âme charitable pouvait m'aider,je lui en serai reconnaissant, merci par avance.

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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
 
 
 
void clean();
 
int main()
 
{
    size_t ve=0;
    unsigned char BT[4048];
 
   int result=1;
   unsigned long arg=0;
 
 
    WSADATA WSAData;
    WSAStartup(MAKEWORD(2,0),&WSAData);
 
    SOCKADDR_IN sin;
    SOCKET sock;
 
    sock=socket(AF_INET,SOCK_STREAM,0);
    sin.sin_addr.s_addr=inet_addr("192.168.1.4");
    sin.sin_family=AF_INET;
    sin.sin_port=htons(23);
 
    connect(sock, (SOCKADDR *)&sin, sizeof(sin));
    result = ioctlsocket (sock1, FIONBIO, &arg); 
 
 
    do{
 
      clean();
      recv(sock,BT,sizeof(BT)-1,0);
      ve=strlen(BT);
      printf("%s\n",BT);
 
     }while(ve>0);
 
    printf("Reception Des Donnees Réussie");
 
}
 
void clean()
{
 
int i;
for(i=0;i<sizeof(BT)-1;i++)
{
BT[i]=0;
}
}