1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
bool CCommunicationTCPClient::RecvFromServer()
{
int sz;
char* buffeur=new char[521];
int len_buffer=(int)strlen(buffer);
struct timeval timeout;
fd_set readfs;
FD_ZERO (&readfs);
FD_SET (csock, &readfs);
timeout.tv_sec = 1000; /* 30 s */
timeout.tv_usec = 5 * 100 * 1000; /* 500 ms */
int err = select (csock+1, &readfs, NULL, NULL, &timeout);
if (err==0)
{
MessageBoxA("Timeout recv","",MB_ICONEXCLAMATION);
return false;
}
else if (FD_ISSET (csock, &readfs))
{
sz = recv(csock, buffer,len_buffer+1, 0);
if(sz ==SOCKET_ERROR)
{
MessageBoxA("erreur de reception","Error",MB_ICONEXCLAMATION);
return false;
}
else
{
buffer[sz]='\0';
MessageBoxA("reception effectuée avec succès","reception",NULL);
return true;
}
}
else return false;
} |
Partager