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

MFC Discussion :

Encore une petite question sur les sockets...


Sujet :

MFC

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    décembre 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2005
    Messages : 227
    Points : 121
    Points
    121
    Par défaut Encore une petite question sur les sockets...
    Salut,

    J'ai quelques petites questions a vous poser sur les sockets :

    • Quelle est la taille du tampon de reception.

    • Comment peut t'on vider le tampon de reception.

    • Combien peut t'on envoyer d'octet (au max.) en un seul coup (une seule chaine).

    • Que se passe t'il si la chaine qui est dans le tampon de reception est plus petite que la taille que l'on passe en paramètre dans la fontion "recv();"


    Merci de m'éclaircir sur ces questions.

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2005
    Messages
    27 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2005
    Messages : 27 332
    Points : 41 390
    Points
    41 390
    Par défaut
    1°) Variable. Mais peut être obtenue par getsockopt().

    2°) Aucune idée, à part en faisant des recv(), à supposer qu'on connaisse la taille des données qui s'y trouvent...

    3°) En mode bloquant, je pense qu'on peut envoyer autant qu'on veut (dans la limite des 32 bits du paramètre de taille) et que le système s'en occupe.
    En mode non-bloquant, je pense qu'on peut envoyer la taille du tampon d'émission (lui aussi peut être obtenu par getsockopt())

    4°) Variable aussi, on dirait. Sous un certain FreeBSD, on recevait la taille de cette chaîne et recv() retournait, même s'il y avait deux chaînes dans le tampon de réception.
    Je n'ai jamais testé ailleurs, car j'envoie toujours la taille des données en premier, ainsi ce problème-là ne se pose-t-il jamais...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    décembre 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2005
    Messages : 227
    Points : 121
    Points
    121
    Par défaut
    Citation Envoyé par Médinoc
    Je n'ai jamais testé ailleurs, car j'envoie toujours la taille des données en premier, ainsi ce problème-là ne se pose-t-il jamais...
    Oui, moi aussi j'ai opté pour cette solution et je me demandait ce qu'il pouvait bien se passer s'il venait a y avoir une erreur :
    -Un paquet peut t'il se perdre totalement/partiellement en chemin... ??
    -La liaison est elle sure et fiable à 100%??
    -Ya t'il un moyen de savoir si un paquet n'est pas entier??

    Parce que moi dans mon programme si ya une erreur de ce genre ca foutrai bien la m****, c'est pour cette raison que j'ai poser la question 4).

    Merci de vos réponses

    PS: paquet=chaine de caractère transmise par socket (je sais si ça s'appelle comme ça)

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2005
    Messages
    27 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2005
    Messages : 27 332
    Points : 41 390
    Points
    41 390
    Par défaut
    Il ne me semble pas qu'en mode connecté, un paquet puisse se perdre partiellement: TCP/IP inclut des options de retransmission, et un paquet dont il manque un bout ne sera pas envoyé à l'application...

    L'important à ce moment-là, c'est de transmettre données et taille dans un seul envoi (qu'on lit en deux fois)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    décembre 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2005
    Messages : 227
    Points : 121
    Points
    121
    Par défaut
    Ok, merci d'avoir répondu a mes questions

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

Discussions similaires

  1. Petite question sur les sockets
    Par theawe dans le forum Réseau
    Réponses: 6
    Dernier message: 30/06/2009, 11h34
  2. Encore une petite question sur le listview
    Par WG614 dans le forum VB.NET
    Réponses: 4
    Dernier message: 13/03/2009, 14h30
  3. [JFileChooser] Une petite question sur les chemins par defaut
    Par MDP dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 06/02/2008, 14h49
  4. une petite question sur les combobox
    Par kerkennah dans le forum Windows Forms
    Réponses: 3
    Dernier message: 11/01/2007, 05h59
  5. une petite question sur les pointeurs
    Par guy777 dans le forum C
    Réponses: 4
    Dernier message: 06/10/2006, 17h44

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