okay
19-09-2006, 11:45
qualcuno può dirmi se ha avuto il mio stesso problema con il winsock?
for (unsigned int j = 0; j < pollingSet.fd_count; j++)
{
clientsocket = pollingSet.fd_array[j];
client[j].tS = ct.getElapsed();
if ((bytes = send(clientsocket, (const char*) &msgOkay, sizeof(GAMEMSG_OKAY), 0)) == SOCKET_ERROR)
{
cout<<"Send messaggio fallito.\n";
}
}
questo è il codice, parte server. per inviare a tutti i clients i dati... ora se mi loggo con il primo client il numero 0, in modo infinito il client numero 0 riceve il messaggio che ha inviato al server che gli e lo smista.
Come mi loggo con il secondo client i dati vengono smistati sia al primo che al secondo client ma dopo un pò si blocca il programma sulla la recv() di ricezione dei dati... ma quale è il motivo di tale blocco.
questa è la recv() di recezione dati:
bytes = recv(clientsocket, rec, sizeof(GAMEMSG_OKAY), 0);
Per essere + precisi:
Se tolgo il ciclo for di invio a tutti i clients e facendo che il server invii il messaggio solo al client che la inviato allora funziona tutto anche loggandosi con 10/20 clients... ma naturalmente in questo modo a me non serve...
Devo fare in modo che il messaggio del client n. 0 sia smistato al client 1 e a tutti i loggati
for (unsigned int j = 0; j < pollingSet.fd_count; j++)
{
clientsocket = pollingSet.fd_array[j];
client[j].tS = ct.getElapsed();
if ((bytes = send(clientsocket, (const char*) &msgOkay, sizeof(GAMEMSG_OKAY), 0)) == SOCKET_ERROR)
{
cout<<"Send messaggio fallito.\n";
}
}
questo è il codice, parte server. per inviare a tutti i clients i dati... ora se mi loggo con il primo client il numero 0, in modo infinito il client numero 0 riceve il messaggio che ha inviato al server che gli e lo smista.
Come mi loggo con il secondo client i dati vengono smistati sia al primo che al secondo client ma dopo un pò si blocca il programma sulla la recv() di ricezione dei dati... ma quale è il motivo di tale blocco.
questa è la recv() di recezione dati:
bytes = recv(clientsocket, rec, sizeof(GAMEMSG_OKAY), 0);
Per essere + precisi:
Se tolgo il ciclo for di invio a tutti i clients e facendo che il server invii il messaggio solo al client che la inviato allora funziona tutto anche loggandosi con 10/20 clients... ma naturalmente in questo modo a me non serve...
Devo fare in modo che il messaggio del client n. 0 sia smistato al client 1 e a tutti i loggati