Dipende da come il server interpreta quei 4 bytes.
L'idea di base è più o meno questa:
Crei un buffer grande quanto la stringa da inviare + i 4 bytes dell'header, copi i primi 4 bytes dell'intero trasformato in char*, copi il resto della stringa e invii tutto.codice:const char* str = "ciao mondo"; int len_str = strlen(str); int len_buffer = len_str + sizeof(int); char* buffer = (char*) malloc( len_buffer * sizeof(char) ); char* pint = (char*) &variabile; for (int i=0; i < 4; i++) { buffer[i] = pint[i]; } for (int i=4; i < len_str; i++) { buffer[i] = str[i-4]; } send(socket, buffer, len_buffer); free(buffer);
Però funziona solo se il server adotta il procedimento inverso.