Originariamente inviato da alextg82
In pratica devo implementare una chat.
Come vedi dal codice del server, c'è una procedura servi che è eseguita da un thread per ogni nuovo client che si connette.
In servi c'è una accept su cui il server dovrebbe bloccarsi in attesa di connessioni, ma in realtà tutta quella parte di codice sembra essere saltata e il thread passa direttamente alla stampa
printf("Comunicazione terminata");
Questo è il mio problema.
Prova ad inserire all'interno della funzione eseguita dal thread una funzione di output: appena inizia quella funzione mettici un bel printf("X\n");..
Cosi' ti accorgi se il thread ci entra o no... Anche se non vedo perche' non dovrebbe entrarci...
Se ci entra, ma hai dei problemi all'interno di quella funzione mettici degli altri cout, che stampino il valore di "newsock_id" e di "letti", per assicurarti che quelle funzioni ottengano i risultati sperati...

Facci sapere




PS: Quando posti del codice, non metterlo così sfuso nel thread, ma mettilo tra i tag [code] e
codice:
[/ code]
in questo modo viene ben allineato e si riesce a capirci qualcosa... Per esempio:
codice:
/* ... */
if ( a == b ) {                        /* se sono uguali */
    printf ( "Uguali" );
} else {                               /* se sono diversi */
    printf ( "diversi" );
}
/* ... */