Serveur multi-client CWinThread & CAsyncSocket
Bonjour à tous,
Je suis un débutant en C++ et en communication socket.
Je souhaite réaliser un serveur capable de recevoir la connexion de plusieurs clients en utilisant les classes MFC !
J'ai une classe CSocketService et CSocketServeur qui dérivent de CAsyncSocket, et d'après mes recherches pour créer un multi-client, on doit créer un thread après le Accpet() dans la méthode OnAccept() de CAsyncSocket.
Mon thread est correctement crée, mais ensuite je ne sais pas quoi mettre comme code dans la fonction de mon thread pour qu'il puissent recevoir des messages des clients.
Tous mon code est situé dans le fichier SocketServeur.cpp qui dérivent de CAsyncSocket
Je déclare mon thread comme sa :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
void CSocketServeur::OnAccept(int CodeErreur)
{
Accept(m_SocService);
/*********************************************************************************
Initialisation Worker Thread
**********************************************************************************/
pthread = new CThread;
pthread = AfxBeginThread(WorkerRunFunction,0);
/********************************************************************************/
CAsyncSocket::OnAccept(CodeErreur);
} |
La fonction de mon Worker Thread :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
/***************************************************************************
Fonction thread de travail
***************************************************************************/
UINT WorkerRunFunction (LPVOID pParam)
{
//message de vérification du thread
AfxMessageBox("Thread correctement crée");
// ???? Code à déterminer
return 0;
} |
Mon fichier SocketServeur.h
Code:
1 2 3 4 5 6 7 8 9 10
|
class CSocketServeur : public CAsyncSocket
{
public:
CSocketServeur();
virtual ~CSocketServeur();
void OnAccept(int CodeErreur);
CSocketService m_SocService;
CWinThread *pthread;
}; |
Je vous remercie de votre aide d'avance :lol: