Partage
  • Partager sur Facebook
  • Partager sur Twitter

Socket et réseaux

    22 mai 2017 à 12:03:34

    Bonjour

    J'ai un programme réseau serveur en C qui attend des connexions de n'importe quel IP, mon PC ou est exécuter l'app serveur est 172.31.100.2/16 (masque de sous réseau de 255.255.0.0) et j'ai des app Clients qui doivent se connecter a mon PC le soucis c'est que je n'y arrive pas, en essayant de se connecter à 172.31.100.2/16 (avec ou sans /16 d'ailleurs) rien ne marche, ils ne se connectent pas...

    Bien sur tout marche bien chez moi avec des tests avec ma propre IP...

    • Partager sur Facebook
    • Partager sur Twitter
      22 mai 2017 à 12:19:11

      Salut,

      Si ça marche de chez toi (avec 127.0.0.1), c'est très possible que ce soit le Firewall qui bloque.

      Vérifie ton firewall, s'il n'a pas arrêté la connexion.

      Vérifie aussi le code de retour de tes fonctions : laquelle t'envoie quel erreur ?

      En prog réseau, il FAUT tester toutes les erreurs, s'il y a un domaine ou c'est fondamental, c'est lui.

      • Partager sur Facebook
      • Partager sur Twitter

      Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

        22 mai 2017 à 14:35:31

        Oui c'est bien ce que je fais, connect ne me renvoie aucune erreur, regarde par toi même :

        • Partager sur Facebook
        • Partager sur Twitter
          22 mai 2017 à 14:40:50

          Salut,

          Met un bout de code. 

          • Partager sur Facebook
          • Partager sur Twitter

          Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

            22 mai 2017 à 15:39:29

            void wait_connection(char * IP, int port, SOCKET * sock)
            {
                *sock = socket(AF_INET, SOCK_STREAM, 0);
                SOCKADDR_IN sin;
                memset(&sin, 0, sizeof(sin));
            
                sin.sin_addr.s_addr = inet_addr(IP);
                sin.sin_family = AF_INET;
                sin.sin_port = htons(port);
            
                printf(" * Attente d'une connection sur %s:%d...\n", IP,port);
            
                    while(connect(*sock, (SOCKADDR_IN*) &sin, sizeof(sin)))
                    {
                        perror("connect()");
                        Sleep(50);
                    }
            }
            • Partager sur Facebook
            • Partager sur Twitter
              25 mai 2017 à 13:17:56

              Salut :)

              Si wait_connection() fait partie de ton code serveur, tu devrais plutôt utiliser accept() . connect() est l'appel pour que le "client se connecte" et non pas pour attendre une connexion.

              Ton serveur devrait normalement faire un bind(), listen(), puis accept() pour attendre une connexion.

              Et c'est a ton client d'utiliser connect() pour établir une connexion avec le serveur.

              J'ai l'impression que tu as mélangé les 2 ici.

              • Partager sur Facebook
              • Partager sur Twitter
                27 mai 2017 à 14:04:00

                C'est une fonction de mon client bien sur, en faite toute mon application (client/serveur) fonctionne parfaitement quand je suis sur un réseau domestique mais lorsque c'est un réseau de type public avec plusieurs réseau dans le même établissement (dans mon lycée par exemple) plus rien ne marche, le masque est différent, il y a plusieurs IP pour plusieurs réseau enfin c'est un peu le bordel et je ne sais pas comment me connecter au serveur du coup ^^

                Ou alors c'est peut etre un probleme de port non ouvert je ne sais pas...

                • Partager sur Facebook
                • Partager sur Twitter

                Socket et réseaux

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown