Voila je d�veloppe un petit serveur sous visual, le principe est simple:
J'ai un CSocket "listener" qui �coute un port fixe auquel les clients se connectent.
Quand ils se connectent (message OnAccept), je cr�e un nouveau CSocket, je l'active avec le pr�c�dent et je le d�tache du thread courant. Je cr�e alors un nouveau thread dans lequel j'attache ce CSocket, et dans lequel je capture les �v�nements du client, ce qui donne

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
 
void OnAccept()
{
   CSocket* sock =  new CSocket;
   Listener.accept(CSocket);
   SOCKET SocketHandle = sock.detach();
   AfxBeginThread(MethodeThread, SocketHandle);
}
 
UINT MethodeThread(LPVOID pParam)
{
   CSocket* sock = new CSocket;
   SOCKET* hsock = static_cast<SOCKET*>(pParam)
   sock.attach(hsock);
}
C'est volontairement tr�s simplifi�... Donc PAS TOUT LE TEMPS (et c'est bien le probl�me) j'ai une assertion dans sockcore.cpp, dans la m�thode DoCallBack(). Pas mal de monde a eu ce probl�me (voir sur CodeGuru et autre) et personne n'arrive � le r�soudre. J'ai entendu parler d'une histoire de pompe d'�x�cution qui ne s'arr�terait pas, enfin c'est pas de mon niveau. Help.[/code]