Socket error 10014 [Résolu]

HeavenForsaker 223 Messages postés mercredi 13 juillet 2005Date d'inscription 8 août 2011 Dernière intervention - 14 mars 2006 à 14:24 - Dernière réponse : HeavenForsaker 223 Messages postés mercredi 13 juillet 2005Date d'inscription 8 août 2011 Dernière intervention
- 5 avril 2006 à 18:33
Bonjour,

Voici une partie de mon code :

//--------------------------------------------------------------------
#include <windows.h>
#include <winsock2.h>
//Librairie WS2_32.lib ajoutée au projet.

//Version de winsock à utiliser.
WORD wVersionRequested = MAKEWORD(2, 2);

//Initialisation de l'objet WSA.
//------------------------------
WSADATA wsaData;
//WSAStartup retourne 0 en cas de succès.
int iResult = WSAStartup(wVersionRequested, &wsaData);
if (iResult != 0)
return 0;

//Création du socket.
//-------------------
SOCKET Sock;
Sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
//Test si la création du socket a réussi.
if (Sock == INVALID_SOCKET)
{
int iError = WSAGetLastError();
WSACleanup();
return 0;
}
//--------------------------------------------------------------

la fonction WSAStartup passe avec succès(renvoi 0), c'est au niveau de la fonction "socket" que ça coince.
Le debugger m'envoi le message suivant :

Program received signal (SIGSEGV)
Segmentation fault
Value of iResult:
Previous frame inner to this frame (corrupt stack?)

Puis m'ouvre la fenêtre "back-trace" à laquelle je comprend rien.
WSAGetLastError retourne le code erreur 10014 soit sur MSDN :
* Bad address. : The system detected an invalid pointer address in attempting to use
a pointer argument of a call. This error occurs if an application
passes an invalid pointer value, or if the length of the buffer is too
small. For instance, if the length of an argument, which is a sockaddr structure, is smaller than the sizeof(sockaddr).
I don't understand ! please help !
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
HeavenForsaker 223 Messages postés mercredi 13 juillet 2005Date d'inscription 8 août 2011 Dernière intervention - 5 avril 2006 à 18:33
3
Merci
J'ai enfin trouvé le fautif...ZoneAlarm Security Suite !
Vous allez me dire : "Evidemment coco ! faut fermer ton firewall quand tu programme."
Le pire c'est que même éteind il bloque l'api winsock ! J'ai vérifié aucun service lié à ce logiciel ne tourne et il arrive quand même a empêcher des fonctions de se lancer ! c'est très fort !
Ca en dit long sur la transparence du logiciel...merci ZoneLabs pour m'avoir fait perdre un temps précieux (obligé de formater et d'installer les logiciel 1 à 1 pour trouver lequel faisais tout foirer, j'aurai plus parié sur un de mes (nombreux) logiciel cracké...enfin bon bref!).
Heureusement qu'une fois cette daube de ZA Security Suite désinstallé le problème disparait ! (il manquerai plus qu'il ne se désinstalle pas correctement!).
A noté que la version gratuite de ZA n'est pas affecté par le problème...bizarre...

Merci HeavenForsaker 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de HeavenForsaker
cs_Klephte 21 Messages postés mardi 20 mai 2003Date d'inscription 7 octobre 2011 Dernière intervention - 18 mars 2006 à 09:00
0
Merci
salut,
Pourquoi ne pas indiquer le protocole dans la structure que tu passeras en argument de la fonction connect qui suivra ?
j'ai écrit un petit client que tu trouveras à cette adresse www.grandville.net

En espérant que cela t'aidera

Arnaud
Commenter la réponse de cs_Klephte
HeavenForsaker 223 Messages postés mercredi 13 juillet 2005Date d'inscription 8 août 2011 Dernière intervention - 18 mars 2006 à 14:25
0
Merci
Merci Klephte pour ta réponse,

Si tu veux dire mettre 0 à la place IPPROTO_TCP, j'ai deja testé ça fais exactement la même chose, la fonction socket() ne passe pas.
Je ne pense pas que ça vienne du code en lui même qui est on ne peux plus simple et tiré en partie de MSDN ! lol.
C'est le message que j'obtiens du debbuger "corrupt stack?" qui m'inquiet...
Je ne vois vraiment pas d'ou ça peu venir. Pour info j'utilise CodeBlocks comme EDI avec compilateur(GNU GCC) et debugger(gdb) tous 2 intégrés à l'EDI. J'ai installé le SDK microsoft pour les librairies et linké la WS2_32.lib dans le projet.
Commenter la réponse de HeavenForsaker
cs_Klephte 21 Messages postés mardi 20 mai 2003Date d'inscription 7 octobre 2011 Dernière intervention - 18 mars 2006 à 17:13
0
Merci
ton code compile sans probleme sous Visual 6.0 SP5 + SDK, il y a bien un problème avec ton compilateur.
Commenter la réponse de cs_Klephte
HeavenForsaker 223 Messages postés mercredi 13 juillet 2005Date d'inscription 8 août 2011 Dernière intervention - 18 mars 2006 à 19:12
0
Merci
OK merci man pour ton aide.
Je vais devoir aller trifouiller les paramètres...
Commenter la réponse de HeavenForsaker
HeavenForsaker 223 Messages postés mercredi 13 juillet 2005Date d'inscription 8 août 2011 Dernière intervention - 3 avril 2006 à 22:50
0
Merci
En fait le code compile bien ici aussi mais c'est à l'execution que ça foire. Je l'ai lancé sur Dev-Cpp ça fait la même chose il me met un truc du genre "erreur de segmentation" arrivé à la ligne :
Sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
Commenter la réponse de HeavenForsaker

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.