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 :

Port de connexion a sa box


Sujet :

Réseau C

  1. #1
    Invité
    Invité(e)
    Par défaut Port de connexion a sa box
    Bonsoir,

    J'apprends en ce moment a coder des sockets en C, et donc j'essaye de faire un programme pour me connecter a ma box

    Mais je ne sais pas quoi mettre dans le champ
    sin.sin_port = htons(PORT);
    Quel port utilise un PC pour ce connecter a sa box ?

    Merci bien

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    les PC se connectent généralement en http sur la box.

    Steph

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Je te remercie de ta réponse

    En m'aidant des cours de DVP sur les sockets j'ai commencé à coder mais j'ai une erreur à cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sin.sin_addr = inet_addr("192.168.1.1");
    Il me dit
    incompatible types when assigning to type 'struct in_addr' from type 'long unsigned int'
    Et quand je met

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sin.sin_addr.s_addr	= inet_addr("127.0.0.1");
    Comme dans le cours il me met :

    undefined reference to `WSAStartup@8'|
    undefined reference to `inet_addr@4'|
    undefined reference to `htons@4'|
    undefined reference to `socket@12'|
    undefined reference to `bind@12'|
    undefined reference to `connect@12'|
    undefined reference to `WSACleanup@0'|

    Voici mon CS :

    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <winsock2.h>
    #pragma comment(lib, "ws2_32.lib")
     
     
    int main()
    {
        WSADATA WSAData;
        WSAStartup(MAKEWORD(2,0), &WSAData);
     
     
        SOCKET sock;    // Le socket
        SOCKADDR_IN sin;    // La structure qui contient les informations du socket
     
        sin.sin_addr = inet_addr("192.168.1.1");   // Adresse du serveur
        sin.sin_family = AF_INET;  // Famille du socket
        sin.sin_port = htons(80);  // Port auquel ce connecter/ecouter
     
        sock = socket(AF_INET,SOCK_STREAM,0);   // Creation du socket, (famille socket, type socket, protocole) protocole=0 : pas de protocole specifie
        bind(sock, (SOCKADDR *)&sin, sizeof(sin));  // Fait le lien entre socket et structure
     
        connect(sock, (SOCKADDR *)&sin, sizeof(sin));   // permet d'etablir la connexion
       WSACleanup();
        return 0;
    }

  4. #4
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 678
    Points
    13 678
    Billets dans le blog
    1
    Par défaut
    Quel compilateur utilises-tu ?

    L'explication est probablement que ton code est faux et ne compile pas. Si tu fais comme dans le tutoriel, il compile mais ne linke pas. Il faut revoir l'inclusion de bibliothèques dans ton projet.

  5. #5
    Invité
    Invité(e)
    Par défaut
    J'utilise Code::Blocks

    Si tu fais comme dans le tutoriel, il compile mais ne linke pas. Il faut revoir l'inclusion de bibliothèques dans ton projet.
    C'est à dire ?
    Je ne comprends pas :/

  6. #6
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 678
    Points
    13 678
    Billets dans le blog
    1
    Par défaut
    Si tu utilises Code::Blocks, tu dois avoir un warning te disant que le #pragma n'est pas pris en compte. Pourquoi l'as-tu mis ?

    Il faut ajouter la bonne bibliothèque aux options du linker. Dans C::B, il faut aller dans Project, Build Options, Linker Settings et ajouter le fichier .a qui va bien. J'ai essayé de mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Program Files\CodeBlocks\MinGW\lib\libwsock32.a
    et ça a marché.

    Après une revue des autres fichiers de ce dossier, la ligne suivante semble plus adaptée, tu testeras :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Program Files\CodeBlocks\MinGW\lib\libws2_32.a


    C'est à dire ?
    Je ne comprends pas :/
    Connais-tu bien les mécanismes de génération d'un exécutable à partir des fichiers sources ?

  7. #7
    Invité
    Invité(e)
    Par défaut
    Re,

    Si tu utilises Code::Blocks, tu dois avoir un warning te disant que le #pragma n'est pas pris en compte. Pourquoi l'as-tu mis ?
    Non il ne me disais rien

    Connais-tu bien les mécanismes de génération d'un exécutable à partir des fichiers sources ?
    Wui wui je ne savais juste pas link une bibliothéque mais c'est bon j'ai trouvé.
    J'ai fais comme toi sauf que j'ai mis -lws2_32 dans Project/Build Option/Linker Settings/Other Linker Options

    Je te remercie de ton aide.
    Bonne journée

  8. #8
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 678
    Points
    13 678
    Billets dans le blog
    1
    Par défaut
    Non il ne me disais rien
    Moi il me disait
    Regardes si tu as bien activer tous les warnings (-Wall -Wextra, j'ai aussi -pendantic chez moi).

    Wui wui je ne savais juste pas link une bibliothéque mais c'est bon j'ai trouvé.
    J'ai fais comme toi sauf que j'ai mis -lws2_32 dans Project/Build Option/Linker Settings/Other Linker Options
    Ok

    De rien et bonne journée à toi aussi.

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

Discussions similaires

  1. Sécuriser les connexions sur la box
    Par FranT dans le forum Sécurité
    Réponses: 3
    Dernier message: 12/08/2011, 16h57
  2. Port pour connexion sqlplus
    Par big1 dans le forum Connexions aux bases de données
    Réponses: 3
    Dernier message: 07/06/2008, 08h17
  3. [C#] port de connexion pour mysql
    Par pcdj dans le forum Windows Forms
    Réponses: 3
    Dernier message: 17/01/2006, 08h11
  4. postgreSQL : changer le port de connexion par defaut ?
    Par radium dans le forum PostgreSQL
    Réponses: 16
    Dernier message: 25/07/2005, 17h16

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