Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 20 su 20
  1. #11
    Prendere dal buffer i byte e riportarli nella loro forma struct, deserializzare in ricezione.
    Secondo me è è meglio implementare i dati della struttura come array.. Beh, sono trattati alla stessa maniera pero secondo me puoi controllare meglio la dimesione.. Cmq, con un ciclo for dopo aver scritto tramite una read o write, (dipende) nel buffer..
    codice:
    int i, N = <valore>;
    char buffer_name[N], buffer_addr[N];
    for(i=0;i<N;i++)
    {
     msg.name[i] = buffer_name[i];
     msg.addr[i] = buffer_addr[i];
    }
    Ma io credo che puoi ricevere direttamente i dati nei campi della struttura.. Fattibile no?
    Spero di aver capito bene anche se mi sembra strano che non ti sia venuto in mente. In tal caso dovrebbe andare bene.. Posta poi il codice che hai buttato giu poi lo proviamo.
    Se ho capito male chiedo scusa

  2. #12
    Utente di HTML.it L'avatar di N3llo
    Registrato dal
    Apr 2007
    Messaggi
    79
    In realtà mi serve che siano byte perchè devo inviarli con una socket e quindi poi riportarli in una struct, per questo li ho scritto come una stringa.

  3. #13
    Non puoi farlo con un casting?
    EDIT:
    In realtà mi serve che siano byte
    Non mi è chiaro..
    int = 4 byte
    char = 1 byte

  4. #14
    Utente di HTML.it L'avatar di N3llo
    Registrato dal
    Apr 2007
    Messaggi
    79
    Complimenti per l'avatar in primis!!!

    Go Lakers Go!

    Si ma non so proprio dove mettere le mani.

  5. #15
    Complimenti per l'avatar in primis!!!
    Sempre. Speriamo nella finale.. Sono un patito
    Cmq, tornando al discorso.. Se vedi ho editato la risposta di prima...
    Se il buffer lo vuoi implementare come int, dalla parte di chi invia ovviamente dovrai immettere i valori ascii nel buffer corrispettivi alle lettere del messaggio che vuoi inviare, cosi quando fai il casting avrai il messaggio corretto, ma io ne vedo la motivazione.. Se invii un messaggio perchè fare passi in più con i casting? Sono sempre byte..
    Si ma non so proprio dove mettere le mani.
    Se ho capito bene con il codice di prima
    codice:
    int i, N = <valore>, buffer_name[N], buffer_addr[N];
    /*I buffers vengono riempiti con i valori corretti da read o write (dipende)*/
    /* codice.. */
    for(i=0;i<N;i++)
    {
     msg.name[i] = (char)buffer_name[i];
     msg.addr[i] = (char)buffer_addr[i];
    }
    Pero come ti ripeto, non ne vedo la motivazione se è questa la situazione.

  6. #16
    Utente di HTML.it L'avatar di N3llo
    Registrato dal
    Apr 2007
    Messaggi
    79
    Ti spiego bene, nel applicativo che sto sviluppando ricevo via UDP dei pkt con una determinata struttura (una struct) ora questo pkt lo devo trasferire via unix socket ad un altro processo che lo deve usare con la struttura di partenza.

    L'idea quindi era, serializzare la struct, metterla in un buffer inviare il buffer e dopo ricostruire per l'utilizzo.

    Grazie 1000 per l'aiuto.

  7. #17
    Utente di HTML.it L'avatar di N3llo
    Registrato dal
    Apr 2007
    Messaggi
    79
    Ho provato varie soluzioni ma nulla, qualcuno ha mai fatto na cosa del genere?

  8. #18
    lo devo trasferire via unix socket ad un altro processo
    hai provato con una pipe?

  9. #19
    Utente di HTML.it L'avatar di N3llo
    Registrato dal
    Apr 2007
    Messaggi
    79
    E' che la struttura del codice usa le socket, e vogliono che implementi questa cosa con le socket.

  10. #20
    Non ci sto capendo piu 'na mazza
    lo devo trasferire via unix socket ad un altro processo
    socket_1 --> socket_2 ; socket_2 --> processo_ext
    Questo è quello che ho capito io..
    L'idea quindi era, serializzare la struct, metterla in un buffer inviare il buffer e dopo ricostruire per l'utilizzo.
    Sembra la via più appropriata.. (client - server giusto ?) Ovviamente se si stessa struct da tutte e 2 le parti. Con i for precedenti dovrebbe funzionare..

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.