Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Programma simulazione di un sistema gestione della rete
Forum - C/C++ - Programma simulazione di un sistema gestione della rete

Avatar
champ (Normal User)
Newbie


Messaggi: 8
Iscritto: 10/06/2009

Segnala al moderatore
Postato alle 11:55
Mercoledì, 10/06/2009
Salve a tutti,sono nuovo del forum e volevo chiedere cortesemente il vostro aiuto riguardo questo programma.
La consegna è questa:
Il mittente invia un messaggio e attende dal destinatario una conferma positiva (ACK), negativa (NAK); se scade il tempo di attesa per uno di questi due, il mittente provvederà a rispedire il pacchetto e il destinatario si incaricherà di scartare eventuali repliche. Nel caso in cui si verificasse un errore nella trasmissione del segnale di conferma (ACK), il mittente provvederà a rinviare il pacchetto; il destinatario riceverà in questo modo una copia del pacchetto già ricevuto, credendo che gli sia pervenuto un nuovo pacchetto. Per ovviare a questo problema si può procedere numerando i pacchetti trasmessi, ovvero inserendo un bit di conteggio.
Allego qui il mio codice incompleto:

#include <stdio.h>
#include <windows.h>

void destinatario(int pac){
    Sleep(3000);
    printf("\nRicevuto\n");
    Sleep(1000);
    printf("\nTrasmissione ACK...\n");
}

main(){

    int i;
    int pacchetti[10]// array di simulazione pacchetti;

    Sleep(1000);

    printf("\n\nInizio spedizione pacchetti........\n");

    for(i=1;i<=10;i++){
            Sleep(1000);
            printf("\n\nSpedizione pacchetto numero %d\n",i);
            Sleep(2000);
            destinatario(pacchetti);
            Sleep(3000);
            printf("\nRicezione avvenuta\n");
            Sleep(2000);
    }
}

Il mio problema è gestire la funzione destinario(invio ack o nack),far scattare il timeout in caso con conseguente rispedizione del pacchetto.
Aspetto gentilmente il vostro aiuto.
Grazie in anticipo.

Ultima modifica effettuata da champ il 10/06/2009 alle 11:59
PM Quote