Problème librairie pthread
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:
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*)'