Ho notato che se utilizzo
codice:
   write(sock_fd, "int\0", 4*sizeof(char));
al posto di write_socket, funziona. E' proprio la write socket che non riesce a scrivere tutti i caratteri...

Ecco la write_socket
codice:
ssize_t write_socket(int fd, char *stringa)
{
	int i = 0;
	// Incrementa i finchè la write va a buon fine e non finisce tutti i caratteri della stringa
	while( write(fd, &stringa[i], sizeof(char)) > 0 && stringa[i] != '\0' )
		i++;
	return (ssize_t)i;
}
Cosa c'è di sbagliato in questa funzione? Mi sto preoccupando, visto che viene utilizzata in tutto il progetto.
Non vorrei che sbagliasse in altri punti del programma e nemmeno me ne accorgo...