Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
//dichiarazione della struct da inviare al server
struct buffer{
int ID;
char nome[20];
};
//lato client
buffer buf;
buf.ID = 12345;
strcpy(buf.nome, "CIAO");
sendto(sd, &buf, sizeof(buf), 0, (const struct sockaddr *)&sad, len);
//lato server
recvfrom(sd, &buf, sizeof(buf), 0, (struct sockaddr *)&cad, (socklen_t*)&fromlen);
*** OUTPUT SERVER ***
ho ricevuto l'ID : 12345
ho ricevuto la stringa : CIAO
fin qui tutto ok!
se invece prova a sostituire il tipo del campo "nome" da char[] a string, e imposto la stringa con questa istruzione (invece di strcpy())
è impostare le stringhe in C con un'assegnazione che è sbagliato, altrimenti che motivo avrebbe di esistere strcpy()? poi be', in C manco esiste il tipo string...
se ti riferisci al C++, pensa che quello che mandi con sendto() è una sequenza di byte. se vuoi mandare un oggetto (quale qualcosa di classe string) devi quindi serializzarlo e fare il contrario dall'altra parte. cosa + semplice presumo sia inviare la stringa in formato C che puoi ricavare con il metodo della classe string c_str() (o un nome simile, ravana un po').
ricordo, come al solito, che x i problemi di programmazione c'è un forum dedicato: http://www.nogood.it/prog/.