Bind socket erreur

Résolu
Taron31 Messages postés 199 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 28 février 2008 - 28 oct. 2006 à 23:05
Taron31 Messages postés 199 Date d'inscription vendredi 16 avril 2004 Statut Membre 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)
A voir également:

2 réponses

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
29 oct. 2006 à 00:26
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 ?
3
Taron31 Messages postés 199 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 28 février 2008
29 oct. 2006 à 11:39
Arg je suis désolé, c'est minable :p
hier soir j'étais très fatigué :D

Merci.

___________________
MVS - Most Valuable Student ( Microsoft)
0
Rejoignez-nous