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*)'
Partager