Oppure

Loading
10/06/09 9:55
champ
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[i]);
            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 10/06/09 9:59
aaa