Socket error 10014

[Résolu]
Signaler
Messages postés
223
Date d'inscription
mercredi 13 juillet 2005
Statut
Membre
Dernière intervention
8 août 2011
-
Messages postés
223
Date d'inscription
mercredi 13 juillet 2005
Statut
Membre
Dernière intervention
8 août 2011
-
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 !
A voir également:

6 réponses

Messages postés
223
Date d'inscription
mercredi 13 juillet 2005
Statut
Membre
Dernière intervention
8 août 2011

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...
Messages postés
21
Date d'inscription
mardi 20 mai 2003
Statut
Membre
Dernière intervention
7 octobre 2011

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
Messages postés
223
Date d'inscription
mercredi 13 juillet 2005
Statut
Membre
Dernière intervention
8 août 2011

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.
Messages postés
21
Date d'inscription
mardi 20 mai 2003
Statut
Membre
Dernière intervention
7 octobre 2011

ton code compile sans probleme sous Visual 6.0 SP5 + SDK, il y a bien un problème avec ton compilateur.
Messages postés
223
Date d'inscription
mercredi 13 juillet 2005
Statut
Membre
Dernière intervention
8 août 2011

OK merci man pour ton aide.
Je vais devoir aller trifouiller les paramètres...
Messages postés
223
Date d'inscription
mercredi 13 juillet 2005
Statut
Membre
Dernière intervention
8 août 2011

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);