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 :

Socket Connexion impossible.


Sujet :

Réseau C

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 26
    Points : 29
    Points
    29
    Par défaut Socket Connexion impossible.
    Bonjour,

    J'essaie de bricoler avec les sockets pour bien comprendre leur fonctionnement, je suis sous une plateforme linux.
    Je suis un grand débutant et j'utilise le tuto du site à propos des sockets en C (je n'ai fait que recopier une partie du code).
    J'aimerai un peu d'aide concernant cette partie du tuto donc.
    Le code fonctionne très bien (enfin ça compile sans warning ni erreur) en revanche je n'arrive pas à me connecter je ne comprends pas pourquoi.
    J'ai rajouté un else pour bien voir la partie qui m'embêtait je suis toujours dans le cas de figure "impossible de connecter" ... moi vraiment pas saisir là ...
    Si quelqu'un pouvait éclairer ma lanterne.
    (Et oui je pourrais aussi utiliser la lib curl mais j'ai bien l'impression que je ne comprends rien à la doc .. et j'aimerais autant faire les choses entièrement par moi même)

    Edit : J'ai évidemment défini tous les include et les define qui vont bien mais je vous les épargne pour plus de lisibilité.

    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
    int ma_connexion_web(void)
    {
        SOCKET sock = socket(AF_INET, SOCK_STREAM, 0);
    if (sock == INVALID_SOCKET)
    {
        perror("socket()");
        exit(errno);
    }
    struct hostent *hostinfo = NULL;
    SOCKADDR_IN sin = { 0 }; /* initialise la structure avec des 0 */
    const char *hostname = "free.fr";
     
    hostinfo = gethostbyname(hostname); /* on récupère les informations de l'hôte auquel on veut se connecter */
    if (hostinfo == NULL) /* l'hôte n'existe pas */
    {
        fprintf (stderr, "Unknown host %s.\n", hostname);
        return EXIT_FAILURE;
    }
     
    sin.sin_addr = *(IN_ADDR *) hostinfo->h_addr; /* l'adresse se trouve dans le champ h_addr de la structure hostinfo */
    sin.sin_port = htons(PORT); /* on utilise htons pour le port */
    sin.sin_family = AF_INET;
     
    if(connect(sock,(SOCKADDR *) &sin, sizeof(SOCKADDR)) == SOCKET_ERROR)
    {
        printf("Connection à %s sur le port %d\n", inet_ntoa(sin.sin_addr), htons(sin.sin_port));
        perror("connect()");
        exit(errno);
    }
    else
            {
                printf("Impossible de se connecter\n");  <-- Je suis toujours dans ce cas de figure
            }
        return 10;
    }
    Merci d'avance les experts (matinaux)

  2. #2
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if(connect(sock,(SOCKADDR *) &sin, sizeof(SOCKADDR)) == SOCKET_ERROR)
    {
        printf("Connection à %s sur le port %d\n", inet_ntoa(sin.sin_addr), htons(sin.sin_port));
    ....
    }
    else
    {
          printf("Impossible de se connecter\n");  <-- Je suis toujours dans ce cas de figure
    }
    Le test est inversé
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  3. #3
    Nouveau membre du Club
    Inscrit en
    Septembre 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 26
    Points : 29
    Points
    29
    Par défaut -_-
    En effet ... je m'en suis rendu compte seul à l'instant ... et dire que j'ai cogité là dessus pendant plus de deux heures .... et que ce n'était qu'un problème de test ...
    Je suis allé faire une petite pause et la solution m'a sauté aux yeux dés mon retour .. j'ai un peu honte d'avoir posté ça du coup

    Merci pour votre aide tout de même.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/05/2015, 11h28
  2. Socket : Connexion impossible
    Par Invité dans le forum C++
    Réponses: 2
    Dernier message: 22/04/2013, 20h16
  3. [Connexion] impossible de se connecter autrement qu'en local
    Par sekiryou dans le forum Installation
    Réponses: 4
    Dernier message: 29/03/2004, 16h19
  4. Connexion impossible
    Par david71 dans le forum Administration
    Réponses: 20
    Dernier message: 23/12/2003, 14h52
  5. [firebird] Connexion impossible en lecture seule
    Par severine dans le forum Administration
    Réponses: 2
    Dernier message: 01/08/2003, 15h35

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