Salve ragazzi. Diciamo che con l'aggiunta di nuovi particolari,l'applicazione Client/Server che sto realizzando fornisce sempre più punti interrogativi...

Il problema che ho al momento riguarda l'impossibilità di inviare dati al Client tramite la funzione send,quando sono all'interno della thread_function.

Ricordo che sto utilizzando delle Internet Domain Socket. Per quanto riguarda i parametri del Server,dunque :

--->Namespace : PF_INET
--->Formato indirizzi :
--------------->sin_family=AF_INET
--------------->sin_addr.s_addr=htonl(INADDR_ANY)
--------------->sin_port=htons(port)

Quindi all'interno del Server effettuo la creazione del thread,dopo la chiamata della funzione accept(),quindi nel ciclo while(1) { <-> }.
Variabili utilizzate :
int *thread_sd; questa la utilizzo per passare il socket descriptor alla funzione : thread_function.
Alloco : thread_sd=(int *)malloc(sizeof(int)) ;

poi quando fork()==0 ---> siamo nel figlio ... quindi il client è connesso :
creo il thread :
pthread_create(&tid,NULL,thread_function,(void *)thread_sd)

La threadFunction è questa :

void *thread_function(void *arg) {
int sd;
sd=*((int*)arg); // Il cast per poter utilizzare sd.
send(sd,"CIAO",sizeof("CIAO"),0);
/* Nel client in corrispondenza della send di sopra c'é */recv(sd,buf,sizeof(buf),0);
*/
close(fd);
free(arg);
}

Il problema è alquanto strano,perché in alcuni casi l'invio del messaggio avviene mentre in altri no. Vi chiedo se per caso sapete quale può essere il problema,credo che sicuramente sia legato al socket. Un altro particolare che vi do è che quando faccio la send aldifuori della thread_function funzionano correttamente. Vi ringrazio in anticipo per le eventuali risposte. Ciao ciao.