Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 12 su 12
  1. #11
    Originariamente inviato da Epiphone
    E questo è male! Devo rivederlo. Ho provato anche con il size prima e dopo l'insert, e poi confrontando i due valori, ma ovviamente, come dici tu, la situazione non cambia.

    @MItaly: per brevità non ho postato come ho preso gli indirizzi, comunque la libreria pcap e li mappo in un array, tutto in automatico, quindi la formattazione è sempre la stessa (8 coppie di numeri esadecimali, 4 sorgente e 4 destinazione). Mi serve metterle così perché le uso per calcolarmi l'HMAC del pacchetto da usare come chiave per criptare lo stesso.
    Ribadisco, non fai prima a memorizzarti dentro una coppia di interi a 32 bit in un std:air o una coppia di struct fatte apposta per contenere IP? Usare le stringhe per contenere dati strutturati all'interno di un programma è quasi sempre una pessima idea...
    Cmq grazie a tutti. Ora cercherò di risolvere il problema di come fare a sapere se il dato era presente o è stato inserito.
    Per inserire gli elementi si usa il metodo insert, che restituisce un std:air contenente un iteratore al valore appena inserito e un bool che ti dice se c'era già. Quindi ti basta fare:
    codice:
    // Inserisce l'elemento
    if(idflow.insert(fid).second) // il secondo elemento del pair restituito è true se l'elemento non c'era già
        printf("L'indirizzo è nuovo ed è stato inserito nella lista.\n");       
    else   
        printf("L'indirizzo è già presente nella lista.\n");
    Amaro C++, il gusto pieno dell'undefined behavior.

  2. #12
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    25
    Grazie Mitaly,
    a me la coppia di indirizzi ip, serve come un dato unico messo in un array unsigned char (tra l'altro prelevo dal pacchetto gli 8 byte degli indirizzi singolarmente e li metto nell'array), se copio i due indirizzi all'interno di due struct, poi devo comunque spostare tutto dentro un array unsigned char perché le funzioni che calcolano l'hmac prendono quello come ingresso. Diciamo che io ho scelto la coppia di indirizzi per identificare il flusso, ma poteva essere qualsiasi altro dato appartenente e peculiare del flusso, l'importante è che stia all'interno di un array da poter passare.
    Comunque sono all'inizio del c++, quindi sicuramente ci sono metodi per fare come mi consigli tu, solo che non saprei come implementarli, quindi per ora mi tengo sul semplice.
    Ti ringrazio ancora per l'aiuto e la pazienza.

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.