Bonjour,
voila, j'ai crée une class Network qui réceptionne les datas envoyé par mon Client et ca marche. Mais maintenant j'aimerais faire un thread, et la ca ne marche plus et je ne comprend pas pourquoi, le mieux et que je vous montre mon code :
network.cpp :et network.h :Code:#include "network.h" Network::Network(){ SocketTcp = new TcpServer(15000); thread1 = new pthread_t ; pthread_create(thread1, NULL, &Network::messageRecu, NULL); pthread_join(*thread1, NULL); } Network::~Network(){ delete SocketTcp; delete thread1; } void Network::messageRecu(){ if((int)SocketTcp->lire() == 97){ cout <<"message 97 recu"<<endl; }else cout<<"pas 97 recu"<<endl; }mon compilateur me retourne :Code:#ifndef NETWORK_H #define NETWORK_H #include "tcpServer.h" #include <pthread.h> using namespace std; class Network{ public: Network(); ~Network(); void messageRecu(); TcpServer *SocketTcp = NULL; pthread_t *thread1 = NULL; }; #endif
network.cpp: In constructor ‘Network::Network()’:
network.cpp:5:59: error: cannot convert ‘void (Network::*)()’ to ‘void* (*)(void*)’ for argument ‘3’ to ‘int pthread_create(pthread_t*, const pthread_attr_t*, void* (*)(void*), void*)’
pthread_create(thread1, NULL, &Network::messageRecu, NULL);
j'ai vu que la mathode Network::messageRecu() devrait etre en static pour que ca marche, c'est ca la solution ?
merci d'avance de votre aide
-----