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

VC++ .NET Discussion :

CSocket receive gros tableau


Sujet :

VC++ .NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 5
    Par défaut CSocket receive gros tableau
    Bonjour.
    Je suis en VC dot.net sous XP pro.
    J'ai un gros tableau d'entier (4000 => 16000 octets) à transférer par socket
    entre 2 PC ayant chacun une application MFC.
    J'utilise CSocket et Receive (soc, int,0) et j'ai des problèmes
    de transmission à partir d'environ 1000 octets.
    Je connais la taille exacte de chaque transmission.
    Sous Linux pour palier à ce problème j'utilise pour la fonction recv l'option MSG_WAITALL pour attendre la fin de la transmission.

    Y a t'il une solution connue à ce problème mis à part une
    boucle de récupération par morceau de mon tableau?

    Par avance merci pour votre aide.

    JMC

  2. #2
    Membre émérite
    Avatar de Spout
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2007
    Messages : 904
    Par défaut
    Peut-être que dans dans la classe CAsyncSocket (parente de CSocket), une des options de la fonction SetSockOpt pourraient te servir, comme par exemple SO_RCVBUF qui spécifie la taille du buffer de réception?
    A voir. Et si ça marche, tiens nous au courant!

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 5
    Par défaut
    Pour le moment j'ai résolu le Pb en mettant une boucle qui tourne tant que le bon nombre d'octet n'est pas arrivé. Je décrémente le nombre d'octets max demandé au fur et à mesure.
    De toute évidence Receive de CSocket se fout totalement du nombre d'octets spécifié en réception.
    Nota: comme j'ai 2 tableaux à la suite dans 2 communications il faut bien
    récupérer juste le bon nombre du 1ier sinon on commence direct celui de la
    2ieme communication.

    Citation Envoyé par spoutspout
    Peut-être que dans dans la classe CAsyncSocket (parente de CSocket), une des options de la fonction SetSockOpt pourraient te servir, comme par exemple SO_RCVBUF qui spécifie la taille du buffer de réception?
    A voir. Et si ça marche, tiens nous au courant!

Discussions similaires

  1. filtrage de (gros) tableau sur plusieurs colonnes
    Par manu.acl dans le forum jQuery
    Réponses: 12
    Dernier message: 24/02/2011, 13h23
  2. Gros tableau à trier (30 000 lignes et plus sur 10 colonnes)
    Par arthuro45 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 09/05/2010, 16h40
  3. [LV8.0][Débutant]charger un gros tableau de données
    Par pacman74 dans le forum LabVIEW
    Réponses: 3
    Dernier message: 30/04/2010, 11h15
  4. scroll gros tableau
    Par mic79 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 26/06/2007, 07h49
  5. Creation de gros tableau
    Par Albenejean dans le forum C++
    Réponses: 7
    Dernier message: 22/02/2007, 12h25

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