J'ai la fonction suivante de configuration pour recevoir les données du serveur toutes les 2 minutes. Pour la première fois j'appelle la fonction, il semble fonctionner mais il se fige à l'appel recv
qui ne revient jamais. et aurais-je besoin d'allouer le tampon sur chaque appel même si le serveur n'a rien à envoyer?recv trafic entrant du serveur
#define RCVBUFSIZE 32
void Receive()
{
UINT totalBytesRcvd = 0, bytesRcvd = 0;
char buffer[RCVBUFSIZE]; /* Buffer for string */
/* Receive up to the buffer size (minus 1 to leave space for
a null terminator) bytes from the sender */
bytesRcvd = recv(sockClient, buffer, RCVBUFSIZE - 1, 0);
if (bytesRcvd)
{
buffer[bytesRcvd] = '\0';
MessageBox(0, buffer, 0, 0); //some way to display the received buffer
}
else if (bytesRcvd == SOCKET_ERROR)
{
return;
}
}
Note: votre 'si (bytesRcvd)' 'chèque satisfait la SOCKET_ERROR' (qui est -1) état, ce qui signifie que vous allez essayer et d'écrire sur « tampon [-1] 's'il y a une erreur et Ensuite, continuez sur Bollock! –