de la pièce ci-dessous du code, pourquoi je reçois lecture Prise pour réponseproblème de programmation Socket en C
int Read(int sock, char *p, int size)
{
int remain, read=0;
remain = size;
while (remain > 0) {
if ((read = recv(sock, p, remain, 0)) < 0) {
/* Error */
return(read);
} else if (read == 0 || *p == 0x0a) {
/* EOF */
break;
}
remain -= read;
p += read;
}
return(size - remain);
}
while (!done)
{
printf("***Reading Socket for response***");
rsplen= Read(myVsHandle.sock,(char *)encXMLResponse,MAX_RSP_LEN);
if (rsplen < 0)
{
printf("Internal Communication Error");
return -1;
}
else if (rsplen >0)
printf("Revieved response");
done++;
return 0;
else if (rsplen == 0)
{
printf("Reading socket");
}
Pouvez-vous être plus précis dans votre question? – jkp
Quelle est la question? – Naveen
Je veux savoir si read() échoue alors l'une des trois conditions doit être vraie. Longueur de réponse> 0, = 0 ou <0. Est-il possible que read() continue à attendre en permanence –