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 :

calcul de débit


Sujet :

Réseau C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2006
    Messages : 134
    Par défaut calcul de débit
    Bonjour, je cherche a calculer un debit voici comment je procede.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    time_t start,end;
    double dif;
    char toto[1];
     
    time(&start);
    nRead = temp->Receive(buff,sizeof(buff),0); //nRead est la taille reçuen octet
    time(&end);
    dif=difftime(end,start);
    sprintf(toto,"%d",dif);
    //Ensuite j'affiche toto
    J'ai comme résultat toujours 0 alors que je dervrais avoir la difference qui s'affiche. Il faut savoir que je ne recoit pas beaucoup d'octet a peine entre 20 et 30. J'aimerai savoir quelle est la résolution de la fonction time et pourquoi je n'ai que 0 comme résultat. Merci d'avance à vous tous.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 299
    Par défaut
    Citation Envoyé par doommick31
    Bonjour, je cherche a calculer un debit voici comment je procede.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sprintf(toto,"%d",dif);
    c'est normal, %d est pour un int et %f ou %g est pour un double

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sprintf(toto,"%f",dif);

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2006
    Messages : 134
    Par défaut
    Merci de vos réponse j'ai fait les modification mais au lieu d'avoir 0 j'ai 0.000000 sa résout pas mon pb.
    Je saisit pas dou peu provenir l'erreur. Je pense que la résolution de timer et trop grande de l'odre de la seconde. Sa doit etre de la d'ou vient l'erreur.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 299

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2006
    Messages : 134
    Par défaut
    J'ai essayer sa
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    TCHAR buff[127];
    unsigned int nRead;
    double start,end,dif;
    char toto[128];
     
    start=GetClock();
    nRead = temp->Receive(buff,sizeof(buff),0); 
    end=GetClock();
    dif=end-start;
    sprintf(toto,"%f",dif);
    et par malheur sa ne marche pas car il ne connait pas GetClock
    j'ai bien inclus time.h par contre sys/time.h je ne l'ai pas dutou ou d'apres vous puis-je le trouver?

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 299
    Par défaut
    Ah ? là je ne sais pas. Je pense que le fichier sys/time.h doit s'installer automatiquement lorsque tu installes code::blocks ou autre.

    Peux-tu nous montrer tout ton code s'il te plait ?

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 299
    Par défaut
    Citation Envoyé par doommick31
    Bonjour, je cherche a calculer un debit voici comment je procede.

    attention, il y a le caractère '\0' à la fin de la chaine !

    est mieux

  8. #8
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par doommick31
    J'aimerai savoir quelle est la résolution de la fonction time et pourquoi je n'ai que 0 comme résultat. Merci d'avance à vous tous.
    La résolution de time() étant d'une seconde, ça ne fonctionnera pas pour des petites valeurs. Il faut une résolution plus fine mais il n'y a pas de solution standard.

    Unixoide : gettimeofday()
    Windows : GetSystemTime(), GetLocalTime(), SYSTEMTIME (milliseconde)

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2006
    Messages : 134
    Par défaut
    Ok merci a tous pour votre aide j'ai trouver la solution parmis celle que vous m'avez proposez
    Jutilise GetTickTime() de windows.h par contre je sais pas comment convertir un DWORD en char * je vait chercher en tout cas merci.

    Bon j'ai trouver un DWORD = unsigned long aussi a preciser la resolution de GetTickTime() est de l'ordre de la millisecond.

    Tout ceci me pause encore se probleme de resolution, je recoit 20 à 30 octets, si ma connection est trop rapide je ne pourrait rien mesurer je vait etre oubliger de faire des moyennes sur 10 trames voir plus.

    Ah moi qu'il exsite dautre fonction qui descende plus bas de l'ordre de la µseconde.

  10. #10
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Le plus fin possible sous Windows, c'est QueryPerformanceCounter() (à utiliser avec QueryPerformanceFrequency()).
    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.

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2006
    Messages : 134
    Par défaut
    il existe pas une fonction dont la resolution est de l'ordre de la µs (micro second)? ou alors une fonction qui convertie le nombre de front montant du cpu en micro ou mili second ?Merci

  12. #12
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    QueryPerformanceFrequency() te donne la résolution du compteur le plus précis auquel un programme Windows ait accès. Si ce nombre est de l'ordre du million, alors la résolution du compteur est de l'ordre de la microseconde.
    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.

Discussions similaires

  1. Aide: calcul du débit sortant
    Par HaTiMux dans le forum Développement
    Réponses: 9
    Dernier message: 02/08/2012, 15h25
  2. balance et calcul de débit
    Par YVES MORELE dans le forum LabVIEW
    Réponses: 1
    Dernier message: 20/03/2012, 19h37
  3. Calcul du débit de l'eau dans une digue
    Par tyybot dans le forum MATLAB
    Réponses: 2
    Dernier message: 13/01/2010, 18h10
  4. [Réseau]calcul débit download
    Par FFF dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 23/11/2005, 12h56
  5. Calcul de débit
    Par mseprog dans le forum Développement
    Réponses: 5
    Dernier message: 24/03/2005, 13h35

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