Salve a tutti![]()
Sono un principiante alle prime armi col C++ e oggi ho incontrato uno scoglio che proprio non riesco a circuire.
Utilizzo g++ su Ubuntu Linux.
Sto lavorando ad un programma che utilizza dei socket e volevo "sintetizzare" la funzione send() in modo da dover solo indicare il puntatore al socket e i dati da inviare.
Questo è il codice che uso:
e chiamo la funzione in questo modo:codice:template <class T> int invia(int sockfd, T *send_buf) { if (send(sockfd, send_buf, sizeof(send_buf), 0) == -1) {perror("send");} }
codice:invia(new_fd, "Prova Prova Prova");
Utilizzo un template per poter inserire come argomento qualsiasi tipo di variabile e non solo uno.
Il problema che mi si verifica è che dall'altro "capo" del socket, al posto della stringa desiderata vengono visualizzate solo le prime 4 lettere ("Prov") e il resto scompare, cosa che non accadeva quando invece inserivo manualmente la lunghezza dell'array.
Qualcuno sa risolvere il mio promlema?
Grazie in anticipo,
Benna

Rispondi quotando
