Bonjour à tous !
Je développe un serveur multi-thread qui permet de communiquer avec des clients.
Je cherche à enregistrer les socket client dans un tableau de thread pour ensuite traité chaque clients indépendamment.
Donc j'ai une erreur mais je ne comprend pas vraiment pourquoi ...

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
attributs:
pthread_t TabThread[NB_THREAD]; //NB_THREAD est une variable global
...(le blabla WSAStartup et le reste)
...
NumThread =0;
while(1)
         {
            TailleAdresseClient=sizeof(AdresseClient);
            fdClient=accept(MaSocket,(struct sockaddr*)&AdresseClient,&TailleAdresseClient);
               if(fdClient<0)
               {
                  exit(1);
               }
               NumThread =0;
 
               while((TabThread[NumThread]!=NULL )&& (NumThread<NB_THREAD))
               {
                  NumThread++;
                              if(NumThread<NB_THREAD)
                              {
                              TabFdClient[NumThread]= fdClient;
                        pthread_create(TabThread+NumThread,NULL,&tServeur::GererClient,&NumThread);
                              }
                              return true;   
            }

une erreur dans le while :

no match for 'operator!=' in '((tServeur*)this)->tServeur::TabThread[((tServeur*)this)->tServeur::NumThread] != 0'

Une erreur pthread_create:

cannot convert `void*(tServeur::*)(void*)' to `void*(*)(void*)' for argument `3' to `int pthread_create(pthread_t*, pthread_attr_t_* const*, void*(*)(void*), void*)'