Buongiorno a tutti!
Ho un problema nella realizzazione di una chat client/server.
Il problema è che non riesco a gestire due client, ovvero il server risponde solo a uno e non a piu di un client connessi.
Il codice del server è piu meno cosi:
codice:
creo socket serverfd
bind();
listen(serverfd, );
pthread_t invio;
pthread_t ricevo;
while(true){
clientfd=accept(serverfd, );
new_client=malloc(1); // credo che non servano, basta poi cambiare
*new_client=clientfd; // l'argomento del thread con clientfd
pthread_create(&invio, NULL, funz_invio, (void*) new_client);
pthread_create(&ricevo, NULL, funz_ricevo, (void*) new_client);
}//fine while
return 0;
} //fine main
void *funz_invio(void *socket){
int sock= *(int*) socket;
while(){... send(sock, )..}
}
void *funz_ricevo(void *socket){
int sock= *(int*) socket;
while(){... recv(sock, ) ..}
}
}
lo stesso nella parte client ho due thread uno per ricever e uno per inviare praticamente speculari.
cosa succede:
il client si connette (e scrive e riceve con il server) //tutto ok!
il client2 si connette (e scrive al server.. ) // tutto ok!
il problema è che se il server scrive... riceve solo il client1 e non il client2
come è possibile? dove sbaglio?
grazie a tutti quelli che mi daranno una mano!+