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:
lo stesso nella parte client ho due thread uno per ricever e uno per inviare praticamente speculari.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, ) ..} } }
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!+

Rispondi quotando
