ERREUR Lors de l'execution d'une thread

Signaler
Messages postés
30
Date d'inscription
jeudi 13 octobre 2005
Statut
Membre
Dernière intervention
7 juillet 2006
-
Messages postés
30
Date d'inscription
jeudi 13 octobre 2005
Statut
Membre
Dernière intervention
7 juillet 2006
-
Bonjour,

J'ai un problème à l'execution d'une tache qui démarre un client Socket IP.

Erreur : Unhandled exception in CrossServeur_V2.0.0.exe : 0xC0000005: Access Violation.

Voila mon appel :
/***********************************/
BOOL DemarreClientpourServeurAnglais(void)
/***********************************/
{
DWORD ThreadId;
HANDLE hThread;
char szErr[255];



getch();


hThread = CreateThread
(
NULL,
0,
(LPTHREAD_START_ROUTINE)Fthread,
NULL,
0,
&ThreadId
);


strcpy(szErr,"Tache demarree\r\n");
printf("%s",szErr);


getch();


// <- GT

return TRUE;
}

Est ce que qqn peux m'aider ?

Merci d'avance

6 réponses

Messages postés
540
Date d'inscription
dimanche 29 décembre 2002
Statut
Modérateur
Dernière intervention
13 mai 2011

Le mieux est encore d'utiliser le debugger pour trouver d'où vient le problème..Est-ce que tu as fait l'initialisation des sockets avant de les utiliser ? [WSAStartup]

Poppyto http://www.poppyto.net LE site pour les bassistes
http://blogs.developpeur.org/Poppyto Mon Blog sur C#
Messages postés
30
Date d'inscription
jeudi 13 octobre 2005
Statut
Membre
Dernière intervention
7 juillet 2006

Voila mon thread, si cela peux t'aider à m'aider !

DWORD _stdcall Fthread(void*rien)
{
int continuer = TRUE;
int i,len;
char message[255];
int Nb_Caracteres_Recus;
char Message_Recu[255];
char szErr[255];


SOCKET Desc_Socket_Cliente;
SOCKADDR_IN Adresse_Socket_Serveur;
WORD wVersionRequested;
WSADATA wsaData;


struct hostent *hostentptr;


wVersionRequested=MAKEWORD(1,1);

WSAStartup(wVersionRequested,&wsaData);
getch();


Desc_Socket_Cliente=socket(AF_INET,SOCK_STREAM,0);


hostentptr=gethostbyaddr
(
(const char *)ADRESSE_IP_SERVEUR,
4,
AF_INET
);


ZeroMemory(&Adresse_Socket_Serveur,sizeof(Adresse_Socket_Serveur));


Adresse_Socket_Serveur.sin_family=(*hostentptr).h_addrtype;
Adresse_Socket_Serveur.sin_port=htons(PORT);
Adresse_Socket_Serveur.sin_addr=*((struct in_addr*)(*hostentptr).h_addr);

connect
(
Desc_Socket_Cliente,
(const struct sockaddr*)&Adresse_Socket_Serveur,
sizeof(Adresse_Socket_Serveur)
);


strcpy(szErr,"Attente Conexion du Serveur Anglais !\r\n");
printf("%s",szErr);


while(continuer)
{

Nb_Caracteres_Recus=recv
(
Desc_Socket_Cliente,
Message_Recu,
sizeof(Message_Recu),
0
);

printf("Nombre cractŠres re‡us :%d\n",Nb_Caracteres_Recus);


if(Nb_Caracteres_Recus<=0)
{
continuer=FALSE;
}
else
{
strcpy(message,Message_Recu);
len=strlen(message);
SetTextColor(hDC,0x8F00);
SetBkColor(hDC,0);


for(i=1;i<=len;i++)
{


strcpy(szErr,message);
printf("%s",szErr);
// <- GT


Sleep(50);
}
}
}


closesocket(Desc_Socket_Cliente);
WSACleanup();
return 0;
}

Si tu peux me dire comment voire d'ou vient mon erreur, merci d'avance.
Messages postés
540
Date d'inscription
dimanche 29 décembre 2002
Statut
Modérateur
Dernière intervention
13 mai 2011

Met un point d'arrêt dans ton Thread et passe en mode Debug ;-)

Poppyto http://www.poppyto.net LE site pour les bassistes
http://blogs.developpeur.org/Poppyto Mon Blog sur C#
Messages postés
30
Date d'inscription
jeudi 13 octobre 2005
Statut
Membre
Dernière intervention
7 juillet 2006

Je n'arrive à mettre aucun point d'arrêt dans ce projet là, ils sont à chaque fois retirés.


tu sais pourquoi ?



Jeff.
Messages postés
540
Date d'inscription
dimanche 29 décembre 2002
Statut
Modérateur
Dernière intervention
13 mai 2011

Tu dois probablement compiler en mode "Release", mets-toi en Debug.

Poppyto http://www.poppyto.net LE site pour les bassistes
http://blogs.developpeur.org/Poppyto Mon Blog sur C#
Messages postés
30
Date d'inscription
jeudi 13 octobre 2005
Statut
Membre
Dernière intervention
7 juillet 2006

Tous mes problèmes sont résolus.

Je te remercie.

Jeff