Bind socket erreur [Résolu]

Messages postés
199
Date d'inscription
vendredi 16 avril 2004
Dernière intervention
28 février 2008
- - Dernière réponse : Taron31
Messages postés
199
Date d'inscription
vendredi 16 avril 2004
Dernière intervention
28 février 2008
- 29 oct. 2006 à 11:39
Bonjour, en codant avec les socket j'ai une erreur avec le bind, pourtant je ne décèle pas d'erreur au niveau du code, apparement c'est un pb technique :

            SOCKADDR_IN Sockad;
            SOCKET Sock;
            if(Sock socket(AF_INET, SOCK_STREAM, 0) INVALID_SOCKET) {
               
                MessageBoxA(hWnd, "Erreur lors de la connexion", "Erreur", MB_OK);
                ExitProcess(0);
            }

               SOCKET SockClient;

               Sockad.sin_addr.s_addr = inet_addr("127.0.01");
               Sockad.sin_port = htons(80);
               Sockad.sin_family = AF_INET;

               if(bind(Sock, (SOCKADDR *)&Sockad, sizeof(Sockad)) == SOCKET_ERROR) {
                   char buffer[512]; sprintf(buffer, "Error code: %d", WSAGetLastError);
                   MessageBoxA(hWnd, buffer, "Erreur", MB_OK);
                   ExitProcess(0);
               }
              
               listen(Sock, 5);
               
               int len = sizeof(Sockad);               if(SockClient accept(Sock, NULL, 0) INVALID_SOCKET) {

                   MessageBoxA(hWnd, "Echec du serveur !", "Erreur", MB_OK);
                   ExitProcess(0);
               }

               MessageBoxA(hWnd, "Nouveau Client !!", "Dringdringdrgin !!", MB_OK);
            }

Si vous aviez une idée de ce problème c'est assez génant, et il me semble que c'est pas la première fois que cela m'arrive...
PS : j'utilise Visual Studio 2005 Express

Merci

___________________
MVS - Most Valuable Student ( Microsoft)
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Dernière intervention
17 septembre 2012
1
3
Merci
Salut,

Le (comparaison) est prioritaire sur le (affectation), donc quand
tu fais "if(Sock socket(...) INVALID_SOCKET)", Sock vaudra soit 0
soit 1, et rien d'autre. Cette remarque est aussi valable pour le
accept() quelques lignes plus bas.

Vu que Sock n'est pas un socket valide, et que l'adresse ip "127.0.01"
n'existe pas, le bind ne risque pas de réussir. Dans ton affichage
d'erreur, il manque les () apres WSAGetLastError: ici tu affiches
l'adresse de la fonction, et non sa valeur de retour.


Un problème technique, tu disais ?

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 119 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_aardman
Messages postés
199
Date d'inscription
vendredi 16 avril 2004
Dernière intervention
28 février 2008
0
Merci
Arg je suis désolé, c'est minable :p
hier soir j'étais très fatigué :D

Merci.

___________________
MVS - Most Valuable Student ( Microsoft)
Commenter la réponse de Taron31

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.