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 :

A quoi cela correspond il?


Sujet :

Réseau C

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 144
    Points : 110
    Points
    110
    Par défaut A quoi cela correspond il?
    Bonsoir a tous,

    j'ai dans un syllabus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
       int tailleS, tailleO;
    ...
       getsockopt(hsocketService,IPPROTO_TCP,TCP_MAXSEG,&tailleS,&tailleO);
    ...
    nbreBytesRecus = recv(hsocketServices,buf,tailleS,0);
    ...
    a quoi correspond tailleS et tailleO?

    Merci

  2. #2
    Membre éprouvé Avatar de orfix
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 707
    Points : 1 132
    Points
    1 132
    To start press any key. (reading screen) Where's the "any" key? I see Esc, Catarl, and Pig Up. There doesn't seem to be any "any" key. Wo! All this computer hacking is making me thirsty. I think I'll order a Tab. (presses TAB key). -- HOMER --

  3. #3
    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 : 61
    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
    Points : 50 367
    Points
    50 367
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       int tailleS, tailleO;
    ...
       getsockopt(hsocketService,IPPROTO_TCP,TCP_MAXSEG,&tailleS,&tailleO);
    Le rôle de getsocket() est de demander la valeur d'une option à la couche IP/TCP ou autre.

    Dans ton cas, tu demande à la couche TCP de la socket hsocketService, la valeur de l'option TCP_MAXSEG (valeur de la fenêtre max TCP, voir le rfc TCP pour plus d'information à ce sujet)
    Citation Envoyé par http://www.uwm.edu/cgi-bin/IMT/wwwman?topic=tcp(7)&msection=
    TCP_MAXSEG
    The maximum size of a TCP segment is based on the network MTU for destinations on local networks or on a default MTU of 576 bytes for destinations on nonlocal networks. The default behavior can be altered by setting the TCP_MAXSEG option to an integer value from 1 to 65,535.
    However, TCP will not use a maximum segment size smaller than 32 or larger than the local network MTU. Setting the TCP_MAXSEG option to a value of zero results in default behavior. The TCP_MAXSEG option can only be set prior to calling listen or connect on the socket. For passive connections, the TCP_MAXSEG option value is inherited from the listening socket.
    This option takes an int value, with a range of 0 to 65535.
    L'option semble TCP_MAXSEG donc retournée dans un int et donc le 4eme paramètre de getsockopt(), tailleS dans ton code, est l'adresse de cet int.

    Le 5eme paramètre quant à lui est un paramètre input/output. Il sert lors de l'appel à spécifier la taille du buffer de réception du paramètre et en retour, il contient la taille utilisée du buffer une fois celui ci renseigné. Dans ton cas, il devrait être initialisé avec sizeof(tailleS) (ce que l'on ne voit pas dans ton code) et en retour, il devrait contenir la taille (en octets) du nombre retourné (1, 2, 4 ou même 8 suivant l'implémentation).

    Donc dans l'esprit du développeur de ce code, tailleS signifierait "taille max du segment TCP" et tailleO signifierait "taille de l'option".

    Une autre chose, il faut absolument vérifier le code retour de getsockopt(). En effet, toutes les piles n'implémente pas toutes les options et il est dangereux d'untiliser la valeur retournée si le code de retour est en erreur (ENOPROTOOPT par exemple )

    Un code un peu meilleur serait donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    int tailleS = 0;
    int tailleO = sizeof(tailleS);
     
    if(getsockopt(hsocketService, IPPROTO_TCP, TCP_MAXSEG, &tailleS, &tailleO) != 0)
    {
       // traitement de l'erreur
    }
    else
    {
       // traitement de la valeur tailleS
    }
    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
    .

  4. #4
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 144
    Points : 110
    Points
    110
    Par défaut
    Citation Envoyé par ram-0000 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       int tailleS, tailleO;
    ...
       getsockopt(hsocketService,IPPROTO_TCP,TCP_MAXSEG,&tailleS,&tailleO);
    Le rôle de getsocket() est de demander la valeur d'une option à la couche IP/TCP ou autre.

    Dans ton cas, tu demande à la couche TCP de la socket hsocketService, la valeur de l'option TCP_MAXSEG (valeur de la fenêtre max TCP, voir le rfc TCP pour plus d'information à ce sujet)


    L'option semble TCP_MAXSEG donc retournée dans un int et donc le 4eme paramètre de getsockopt(), tailleS dans ton code, est l'adresse de cet int.

    Le 5eme paramètre quant à lui est un paramètre input/output. Il sert lors de l'appel à spécifier la taille du buffer de réception du paramètre et en retour, il contient la taille utilisée du buffer une fois celui ci renseigné. Dans ton cas, il devrait être initialisé avec sizeof(tailleS) (ce que l'on ne voit pas dans ton code) et en retour, il devrait contenir la taille (en octets) du nombre retourné (1, 2, 4 ou même 8 suivant l'implémentation).

    Donc dans l'esprit du développeur de ce code, tailleS signifierait "taille max du segment TCP" et tailleO signifierait "taille de l'option".

    Une autre chose, il faut absolument vérifier le code retour de getsockopt(). En effet, toutes les piles n'implémente pas toutes les options et il est dangereux d'untiliser la valeur retournée si le code de retour est en erreur (ENOPROTOOPT par exemple )

    Un code un peu meilleur serait donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    int tailleS = 0;
    int tailleO = sizeof(tailleS);
     
    if(getsockopt(hsocketService, IPPROTO_TCP, TCP_MAXSEG, &tailleS, &tailleO) != 0)
    {
       // traitement de l'erreur
    }
    else
    {
       // traitement de la valeur tailleS
    }

    Super ram-0000 voila je style de reponse que j'attendais
    Merci beaucoup

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

Discussions similaires

  1. A quoi cela correspond au Québec ?
    Par zecreator dans le forum Emploi
    Réponses: 2
    Dernier message: 02/02/2015, 20h22
  2. Réponses: 2
    Dernier message: 09/07/2010, 13h46
  3. DeprecationWarning ! A quoi cela correspond?
    Par luffy.luck dans le forum GTK+ avec Python
    Réponses: 2
    Dernier message: 20/05/2008, 19h50
  4. ConfigurationException a quoi cela correspond-il ?
    Par jeremp dans le forum Services Web
    Réponses: 1
    Dernier message: 19/10/2007, 12h01
  5. [XSD] A quoi cela sert-il ? Comment l'utiliser ?
    Par s3r3nity dans le forum Valider
    Réponses: 1
    Dernier message: 18/12/2005, 00h05

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