Bonjour,
J'ai un léger probleme, lorsque mon thread de service se lance, le second se bloque sur l'accept() qui retourne une erreur.
Voici le code
Dans le code principale :
TParam parametre = {sock_maitre,GetActiveWindow()};
AfxBeginThread(serverThreadProc,(LPVOID)¶metre,THREAD_PRIORITY_NORMAL,0,0);
Donc il lance un 1er thread de service dont le code est :
UINT serverThreadProc(LPVOID pParam)
{
TParam* parametre = (TParam*)pParam;
SOCKADDR_IN cin;
SOCKET sock_dial;
int cinsize = sizeof(cin);char* pBuffer = newchar[200];if((sock_dial = accept((SOCKET)parametre->sock,(SOCKADDR *)&cin,&cinsize)) == INVALID_SOCKET){
/* Erreur MessageBox(GetActiveWindow(),_T("Erreur accept()"),_T("Erreur"),MB_OK);return -1;}
// Fonctions à éxécuter sur le socket.recv(sock_dial,pBuffer,200*
sizeof(char),0);pBuffer[200] = 0;
CString buffer(pBuffer);
strcpy_s(pBuffer,6,"Merci");send(sock_dial,pBuffer,
sizeof("Merci"),0);MessageBox(GetActiveWindow(),buffer.GetString(),_T("Message Recu"),MB_OK);shutdown(sock_dial,2);AfxBeginThread(serverThreadProc,pParam,THREAD_PRIORITY_NORMAL,0,0);
return 0;}
Ce thread de service lance donc un nouveau thread de service pour traiter une nouvelle connexion.
C'est au moment du 2nd thread que ca bloque...



---
Stermy
---
