IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau C Discussion :

Clients : Impossible de se connecter à mon adresse IP


Sujet :

Réseau C

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 19
    Par défaut Clients : Impossible de se connecter à mon adresse IP
    Bonjour,

    Dans mon apprentissage de sockets, je rencontre déjà quelques petits problemes , j'ai pris en exemple le tuto sur la programmation réseau , j'ai donc pris exactement le même code et sa fonctionne bien si je met comme IP 127.0.0.1 . Cependant j'ai voulu tester avec mon IP (de la livebox) et là le client ne veut pas se connecter je n'ai strictement rien changé dans le code du serveur (si ce n'est que je me connecte par le port 6800 et non 5050), par contre pour le code du client j'ai juste changé le port (j'ai mis 6800) et j'ai remplacé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    server.sin_addr.s_addr  = inet_addr("127.0.0.1");
    Par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    server.sin_addr.s_addr  = inet_addr("90.21.56.160");
    La compilation ne me retourne aucune erreur, donc je lance le server (là y'a pas de probleme) puis je lance le client , et là il m'affiche : "La fonction connect a echoue" . Alors que si je met l'ip 127.0.0.1 sa fonctionne bien ^^ .Je me demande si je ne doit pas ouvrir des ports sur ma livebox ? Pourtant il me semble que le port 6800 est ouvert :



    Si vous pouviez me donner un piste pour m'aider , sa serait vraiment sympatique . Merci d'avance

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Il y a plusieurs choses à faire mais au final, je doute que cela fonctionne :
    • Définir un port virtual au niveau de ta box (je pense que tu as dû déjà le faire au vu la copie d'écran que tu présentes)
    • Ouvrir le firewall de ta machine


    Maintenant, pourquoi cela risque de ne pas marcher.

    Je suppose : ton serveur est sur ton PC, ton client est sur ton PC (car 127.0.0.1 la connexion fonctionne)
    ton client va donc se connecter à ta box (@IP externe de ta box) en provenant de l'intérieur. Ta box va rediriger cette connexion vers ton PC de l'extérieur vers l'intérieur

    et cela la pluspart des box ne savent pas le faire (je ne sais pas la vraie raison mais c'est plus ou moins lié à la translation d'adresse et au port forwarding).

    Il te reste à trouver un copain qui soit sur internet pour t'aider à faire tes tests ou alors aussi, tu peux aussi continuer à tester avec un 2eme PC sur ton réseau interne (192.168.?.? probablement mais pure supposition de ma part)
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Poison_xtreamlua Voir le message
    La compilation ne me retourne aucune erreur, donc je lance le server (là y'a pas de probleme) puis je lance le client , et là il m'affiche : "La fonction connect a echoue" . Alors que si je met l'ip 127.0.0.1 sa fonctionne bien ^^ .Je me demande si je ne doit pas ouvrir des ports sur ma livebox ? Pourtant il me semble que le port 6800 est ouvert :
    Je vois les ports 3000 et 6112 et non 6000...

    Tu dois rajouter une config pour ton nouveau serveur avec
    - l'adresse locale de la machine
    - le numéro de port (6000)
    - le protocole (TCP, je suppose...)

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 19
    Par défaut
    Bonjour,

    Encore merci, j'ai changé de port , j'ai pris le 3500 ^^ et j'ai fait testé le client à ma copine (et moi j'était le serveur) et sa a marché , enfin je pense ^^ , car une fois qu'elle c'est connectée la fenetre se ferme direct, j'ai juste le temps de voir le message "au revoir" que le server affiche lorsque le client se déconnecte, je suppose que c'est normal puisqu'il n'y a pas de boucle infini pour faire tourner le programme ? Si vous pouviez juste me confirmer cela , sa serait cool

    Bon et bien , merci bien ^^ .

    @ ++

  5. #5
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Heu ...

    sans voir ni le code de ton serveur, ni le code de ton client, tu veux que l'on devine leurs comportement !!!

    Ce n'est plus de l'informatique, c'est de la divination.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 19
    Par défaut
    Lol, désolé, en fait mes codes sont les mêmes que ceux du tuto :

    client.c :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    #include <stdio.h>
    #include <winsock2.h>
     
    int main()
    {
        WSADATA wsaData;
     
        if (WSAStartup(MAKEWORD(2, 0), &wsaData) != 0)
            fprintf(stderr, "La fonction WSAStartup a echoue.\n");
        else
        {
            SOCKET s_server;
     
            s_server = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
            if (s_server == INVALID_SOCKET)
                fprintf(stderr, "La fonction socket a echoue.\n");
            else
            {
                SOCKADDR_IN server;
     
                ZeroMemory(&server, sizeof(server));
                server.sin_family       = AF_INET;
                server.sin_addr.s_addr  = inet_addr("90.12.25.192");
                server.sin_port         = htons(3500);
     
                if (connect(s_server, (SOCKADDR *)&server, sizeof(server)) == SOCKET_ERROR)
                    fprintf(stderr, "La fonction connect a echoue.\n");
                else
                {
                    char buffer[100];
     
                    recv(s_server, buffer, sizeof(buffer), 0);
                    printf("%s\n", buffer);
     
                    send(s_server, "Au revoir", (int)strlen("Au revoir") + 1, 0);
     
                    shutdown(s_server, SD_SEND);
                }
     
                closesocket(s_server);
            }
     
            WSACleanup();
        }
     
        return 0;
    }
    server.c

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    #include <stdio.h>
    #include <winsock2.h>
     
    int main()
    {
        WSADATA wsaData;
     
        if (WSAStartup(MAKEWORD(2, 0), &wsaData) != 0)
            fprintf(stderr, "La fonction WSAStartup a echoue.\n");
        else
        {
            SOCKET s_server;
     
            s_server = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
            if (s_server == INVALID_SOCKET)
                fprintf(stderr, "La fonction socket a echoue.\n");
            else
            {
                SOCKADDR_IN server;
     
                ZeroMemory(&server, sizeof(server));
                server.sin_family       = AF_INET;
                server.sin_addr.s_addr  = htonl(INADDR_ANY);
                server.sin_port         = htons(3500);
     
                if (bind(s_server, (SOCKADDR *)&server, sizeof(server)) == SOCKET_ERROR)
                    fprintf(stderr, "La fonction bind a echoue.\n");
                else
                {
                    if (listen(s_server, 0) == SOCKET_ERROR) /* listen : commencer l'ecoute */
                        fprintf(stderr, "La fonction listen a echoue.\n");
                    else
                    {
                        SOCKET s_client;
                        SOCKADDR_IN client;
                        int csize = sizeof(client);
     
                        s_client = accept(s_server, (SOCKADDR *)&client, &csize);
     
                        if (s_client == INVALID_SOCKET)
                            fprintf(stderr, "La fonction accept a echoue.\n");
                        else
                        {
                            char buffer[100];
     
                            printf("Le client %s s'est connecte !\n", inet_ntoa(client.sin_addr));
     
                            send(s_client, "Bonjour", (int)strlen("Bonjour") + 1, 0);
     
                            recv(s_client, buffer, sizeof(buffer), 0);
                            printf("%s\n", buffer);
     
                            closesocket(s_client);
                        }
                    }
                }
     
                closesocket(s_server);
            }
     
            WSACleanup();
        }
     
        return 0;
    }
    Donc ma question est : Est ce normal que la fenetre se ferme une fois que le client ce connect ? (j'ai juste le temps de voir le "au revoir" qu'envoi le client lorsqu'il se déconnect).

    Merci .

  7. #7
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Oui, car:
    1/ Le client attend un message, puis en envoi un et se déconnecte.
    2/ Le serveur envoi un message, en attend un puis se déconnecte.

  8. #8
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Au vu du code, oui, c'est normal.

    Astuce : si tu lances le programme dans une console, tu verras le message en entier et il restera à l'écran
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 19
    Par défaut
    Merci à tous pour votre aide et vos réponses !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 01/03/2012, 18h44
  2. Impossible de me connecter à mon serveur ftp via FTPClient
    Par Invité dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 21/02/2012, 17h39
  3. Impossible de se connecter à mon serveur SQL
    Par Leelith dans le forum Administration
    Réponses: 6
    Dernier message: 07/10/2010, 22h49
  4. [Installation] [Client] impossible de se connecter : Unrecognized URL scheme
    Par blueman1 dans le forum Subversion
    Réponses: 3
    Dernier message: 27/04/2009, 23h37
  5. Impossible de me connecter à mon site intranet
    Par foryou dans le forum ASP.NET
    Réponses: 3
    Dernier message: 04/09/2008, 12h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo