Originariamente inviato da Andre00
fralaltro buffer non è una stringa?
Una stringa non e' altro che una sequenza di byte (char).

Non ci vedo nulla di strano ad utilizzare una stringa come si vuole ...

Dopo lo script
Codice, non script ...

ip->ihl = 5; //riempio la struttura IP
ip->version = 4;
ip->tos = 16;
ip->tot_len = sizeof(buffer);
ip->id = htons(52407);
ip->frag_off = 0;
ip->ttl = 64;
ip->protocol = 6;
ip->check = 0; //per ora setto a 0 poi calcolerò quando conoscerò la dimensione del pacchetto TCP
ip->saddr = inet_addr("127.0.0.1");
ip->daddr = inet_addr("127.0.0.1");

tcp->source = htons(2485); //riempio la struttura TCP
tcp->dest = htons(21);
tcp->seq = htonl(1);
tcp->ack_seq = 0;
tcp->doff = 5;
tcp->syn = 1;
tcp->ack = 0;
tcp->window = htons(32767);
tcp->check = 0; //questo valore verrà inserito dal sistema operativo
tcp->urg_ptr = 0;

Ne dedurrei che buffer dovrebbe essere una stringa il cui spostamento di byte rispecchia la struttura di iphdr e tcphdr così decido di visualizzare buffer...
buffer e' un area di memoria a cui si accede tramite i puntatori che sono di un tipo particolare (ovvero di tipo iphdr e tcphdr) e quindi, *tramite i puntatori*, il compilatore accede ai singoli elementi delle strutture "mappandole" nel buffer ...

Nulla di strano ...

e cosa ottengo? mi visualizza il carattere "E"... mah?!?!?!? io non so cosa sto facendo.... vi sarei davvero molto grato se qualcuno mi aiutasse a capire!!
Sì ... ma scusa se te lo dico, da queste tue affermazioni, non mi sembra che le tue conoscenze generali del C (a parte i puntatori) siano ancora adeguate, per questo tipo di programmi in particolare, ma anche per programmi piu' semplici.

Se visualizzi come stringa un buffer che contiene degli elementi di una struttura, è ovvio che otterrai l'equivalente ASCII dei dati binari contenuti in questo ...

Non ci vedo nulla di strano in questa operazione che e' inutile proprio perche' tenti di visualizzare dei dati dal punto di vista sbagliato ... Cosa ti aspettavi di vedere?