Partage
  • Partager sur Facebook
  • Partager sur Twitter

implémanation algoritme stop and wait

Sujet résolu
    27 mars 2022 à 10:56:06

    Bonjour,


    J'ai réaliser l'implémentation de l'algorithme stop and wait, avec retour sur erreur, mais  je ne comprends pas pourquoi le timeur ne démarre pas.

    Voici l'agoritme émetteur.



    #include <stdio.h>
    #include "application.h"
    #include "couche_transport.h"
    #include "services_reseau.h"
    
    /* =============================== */
    /* Programme principal - émetteur  */
    /* =============================== */
    int main(int argc, char* argv[])
    {
        unsigned char message[MAX_INFO]; /* message de l'application */
        int taille_msg; /* tajiè_oyç pèuovfècxille du message */
        paquet_t paquet; /* paquet utilisé par le protocole */	
        uint8_t num_sequence=1;
        init_reseau(EMISSION);
        
    
        printf("[TRP] Initialisation reseau : OK.\n");
        printf("[TRP] Debut execution protocole transport.\n");
    
        /* lecture de donnees provenant de la couche application */
        de_application(message, &taille_msg);
    
        /* tant que l'émetteur a des données à envoyer */
        while ( taille_msg != 0 ) {
    
            /* construction paquet */
            
            paquet.lg_info = taille_msg;
            paquet.type = DATA;  
            paquet.num_seq=num_sequence;
            paquet.somme_ctrl = somme_controle(paquet);
    	
            		
            for (int i=0; i<taille_msg; i++) {
                paquet.info[i] = message[i];
                num_sequence++;
                
            }
        
            /* remise à la couche reseau */
            
            
            depart_temporisateur(0,100); //rédémar pour le prochain paquet
            vers_reseau(&paquet);
            while  (attendre()==-1){
            	if(attendre()==1){
            		depart_temporisateur(0,100); // le temporisateur redémar car il à expiré
            		vers_reseau(&paquet);
            	}	
            }
            arreter_temporisateur(0);
    	
            /* lecture des donnees suivantes de la couche application */
            de_application(message, &taille_msg);
        }
        printf("[TRP] Fin execution protocole transfert de donnees (TDD).\n");
        return 0;
    }



    voici l'érreur







    • Partager sur Facebook
    • Partager sur Twitter
      27 mars 2022 à 15:02:42

      Hello,

      On ne va pas aller loin avec ce code.

      • où est le code de depart_temporisateur() ?
      • d'où vient le message "Le timer (0) n'est pas démarré" ?

      -
      Edité par edgarjacobs 27 mars 2022 à 16:32:46

      • Partager sur Facebook
      • Partager sur Twitter
        27 mars 2022 à 18:06:33

        Parfois ça me fait halluciner les gens qui postent des question avec 1/8 de l'explication du problème.

        Pour poster une question correctement sur un forum :

        http://www.catb.org/esr/faqs/smart-questions.html

        • Partager sur Facebook
        • Partager sur Twitter

        l'azerty est aux dispositions ce que subversion est aux SCM

          27 mars 2022 à 18:28:58

          Ce qui est hallucinant également est qu'on retrouve aisément le corrigé du TP sur un repo git …

          Avant même de faire un RTFM on peut faire un SOTFIBASQ … search on the fucking internet before asking stupid questions

          • Partager sur Facebook
          • Partager sur Twitter
            28 mars 2022 à 5:41:18



            -
            Edité par colyffff 12 juin 2022 à 18:39:00

            • Partager sur Facebook
            • Partager sur Twitter
              28 mars 2022 à 9:12:47

              Le problème Colyffff est que tu balances un truc. Tu sais très bien de quoi tu parles, tu as le tête dedans. Nous, non.

              La meilleure façon d'avoir de l'aide, après : 

              • avoir utilisé un debuger pour débuguer ;
              • avoir utilisé google pour trouver des infos ;
              • avoir lu la charte du forum.

              est de :

              • bien expliquer ton problème
              • bien poser une question précise en donnant tout ce qu'il faut pour qu'on puisse répondre.

              Tout cela est bien résumé dans le lien fourni par Markand. Ne le prends surtout pas personnellement … cela vaut pour tous les forums.

              • Partager sur Facebook
              • Partager sur Twitter
                28 mars 2022 à 10:58:49

                Je voudrais bien répondre à ta question, mais avec le peu d'indication que tu donne, c'est difficile ! C'est pour cela que je n'ai pas répondu.

                Tu comprend bien que ton temporisateur personne ne le connait, on ne sait même pas d'où il sort !?

                Tu nous montres juste les appels de fonctions. fonction que l'on ne connais pas !?

                Les 2 appels consécutif à attendre ligne 46 et 47 me paraisse un peu bizarre mais comme on ne connait rien de cette fonction je ne peu t'en dire plus ! 

                • Partager sur Facebook
                • Partager sur Twitter
                  29 mars 2022 à 15:25:29

                  Bonjour,

                  Effectivement c'est imprécie , les  lignes 46 et 47 étais fausse, ça marche maintenant

                  • Partager sur Facebook
                  • Partager sur Twitter
                    29 mars 2022 à 16:38:09

                    N'oublie pas de mettre ton post en résolu dans ce cas.
                    • Partager sur Facebook
                    • Partager sur Twitter

                    l'azerty est aux dispositions ce que subversion est aux SCM

                    implémanation algoritme stop and wait

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    • Editeur
                    • Markdown