Fede_Reghe
18-03-2007, 16:46
Sto tentando di creare un piccolo programma dos che funga da chat. Apro il socket del server e del client, il server invia il messaggio di benvenuto e il client inizia a trasmettere quello che l'utente inserisce. Fin quando è un client tutto ok! il server riceve e stampa a video. Ora però devo connettere un altro client, si connette il server afferma che non ci sono errori ma quando digito qualcosa nel 2 client non arriva nulla al server. Vi lascio qua parte del codice sorgente del server:
while (1) {
AcceptSocket = SOCKET_ERROR;
while ( AcceptSocket == SOCKET_ERROR ) {
AcceptSocket = accept( socketparent, NULL, NULL );
}
printf( "Client Connected.\n");
socketparent = AcceptSocket; //Trasferisco il socket temporaneo a quello principale
break;
}
char sendbuf[100] = "\nBenvenuto\n";
char recvbuf[1000] = "";
bytesSent = send( socketparent, sendbuf, strlen(sendbuf), 0 ); //Invio il msg di benvenuto
while(true) {
while ((bytesRecv=recv( socketparent, recvbuf, 100, 0 ))==-1){}; //Attendo un messaggio
printf( "\nMsg: %s",&recvbuf); //Stampo il messaggio
}
Ovviamente il messaggio di benvenuto non appare perchè il while continua a girare, ma dovrebbe ricevere i messaggi!
while (1) {
AcceptSocket = SOCKET_ERROR;
while ( AcceptSocket == SOCKET_ERROR ) {
AcceptSocket = accept( socketparent, NULL, NULL );
}
printf( "Client Connected.\n");
socketparent = AcceptSocket; //Trasferisco il socket temporaneo a quello principale
break;
}
char sendbuf[100] = "\nBenvenuto\n";
char recvbuf[1000] = "";
bytesSent = send( socketparent, sendbuf, strlen(sendbuf), 0 ); //Invio il msg di benvenuto
while(true) {
while ((bytesRecv=recv( socketparent, recvbuf, 100, 0 ))==-1){}; //Attendo un messaggio
printf( "\nMsg: %s",&recvbuf); //Stampo il messaggio
}
Ovviamente il messaggio di benvenuto non appare perchè il while continua a girare, ma dovrebbe ricevere i messaggi!