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 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    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...

  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 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    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)

  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