Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    378

    [C&socket] - memorizzare flusso dati UDP

    Salve,
    chi mi consiglia come memorizzare un flusso di pacchetti UDP?
    vorrei poter fare istante per istante dei controlli sulla percentuale di persi/inviati per avere una certa percentuale sicura di pacchetti a destinazione.

    ogni pacchetto contiene un identificatore di tipo intero.

    secondo voi dove e come posso memorizzare questi pacchetti per un futuro reinvio?

    Saluti.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non capisco la domanda ... un flusso di dati e' comunque un insieme di byte e quindi puoi sempre e comunque metterli su disco ... spiegati meglio.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    378
    si, memorizzando questi dati su disco.
    come però? avrei bisogno di qualche consiglio,
    Grazie.

  4. #4
    Li leggi, li scrivi su buffer e poi su disco.
    codice:
    FILE *file;
    char buf[MAXBUFLEN];
    
    file = fopen(...);
    
    ...
    
    if ((numbytes = recvfrom(sockfd, buf, MAXBUFLEN-1 , 0,
            (struct sockaddr *)&their_addr, &addr_len)) == -1) {
            perror("recvfrom");
            exit(1);
        }
    
    fwrite(buf, 1, MAXBUFLEN-1, file);

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da menphisx
    Li leggi, li scrivi su buffer e poi su disco.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    378
    Bene,
    quindi io avevo pensato ad un intero per identificare i pacchetti dati da inserire nel file, poi nel momento in cui un pacchetto(n) viene inviato fuori ordine, sapendolo ricevendo un ack del pacchetto n+1 , allora elimino tutti i dati sull'altra applicazione da quel pacchetto in poi e reinvio da n-1...

    tipo:
    send ap1
    pacchetton1
    pacchetton2
    pacchetton3


    ap1 ap2
    send ----> recv
    recv <----send ack


    recv ap2
    recv1acchetto1 //invio ack di pkt1
    recv2acchetto3 // invio ack di pkt3, non trovo pacchetto (n-1) quindi blocco la ricezione e richiedo l'invio da pacchetto2(n-1)

    avete altre soluzioni per riuscire a mantenere un ordine e una percentuale sicura di pacchetti a destinazione?

    grazie.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.