Pagina 3 di 3 primaprima 1 2 3
Visualizzazione dei risultati da 21 a 23 su 23
  1. #21
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    214
    Ok, ora utilizzo un unsigned int, comunque operando sulla stessa macchina non avrò mai il caso in cui mittente e ricevente usano diverse dimensioni per i dati, dunque non è necessario l'utilizzo di un intero a dimensione fissa.

    Ho limitato anche la sezione critica al solo accesso alla struttura condivisa, ma rimane il problema: quella receive a volte mi restituisce l'errno che descrivevo prima. Ribadisco che però non ho mai una situazione di errore "interna" alla funzione receiveMessage, tutti i dati vengono letti correttamente...

  2. #22
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    707
    Originariamente inviato da Smoke666
    Ok, ora utilizzo un unsigned int, comunque operando sulla stessa macchina non avrò mai il caso in cui mittente e ricevente usano diverse dimensioni per i dati, dunque non è necessario l'utilizzo di un intero a dimensione fissa.
    Non ho capito cosa hai scritto.
    Mittente e ricevente DEVONO usare lo stesso numero di bytes per spedire quel dato mi raccomando.
    Se da una parte spedisci 8 bytes dall'altra ne devi leggere per 8 bytes e salvarli in una variabile di dimensione 8 bytes.
    Ora stavi spedendo non so quanti bytes, ma ne stavi salvando 8 in una variabile grande 4, andando così a sovrascrivere sicuramente una zona di memoria.

  3. #23
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    214
    Inizialmente avevo scelto di utilizzare un int64_t per avere la certezza che mittente e ricevente utilizzassero gli stessi byte per il salvataggio della variabile, senza pensare però che operando sulla stessa macchina non esiste il caso in cui mittente e ricevente utilizzano dimensioni diverse per i dati. Non avevo considerato neppure che l'intero presente nella struttura fosse più piccolo dei dati che andavo a scrivere. Ho corretto utilizzando l'unsigned int per "risparmiare" memoria e per mantenere la struttura inalterata.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.