2009-03-16 6 views
1

Nous avons une application qui utilise ReadFile pour lire un socket. Dans l'un des scénarios, le fichier ReadFile reçoit un appel indiquant qu'il y a 2 octets à lire, mais lorsque le fichier ReadFile essaye de le lire, il renvoie avec bytesread comme 0. Est-ce que cela signifie que la prise à l'autre extrémité s'est fermée? . Je veux dire, cela signifie-t-il nécessairement que le socket à l'autre extrémité s'est fermé lorsque ReadFile lit 0 octet? . ou pourrait-il être une erreur?Socket ReadFile Issue

Répondre

0

Lorsque ReadFile() trouve qu'il y a deux octets à lire, il lit en même temps ces deux octets et ils sont supprimés du socket. Si l'expéditeur n'envoie pas plus de données, l'appel suivant montrera qu'il n'y a rien à lire. Pour déterminer si une erreur s'est produite, vous devez vérifier la valeur de retour de ReadFile().