Ce n'Fin De Fichier sur un socket veux dire?
À l'aide de l'Action Script 3 dans Flex Builder 3.
Lors de la manipulation d'un SOCKET_DATA événement, de temps en temps j', apparemment au hasard, un message "Erreur #2030: Fin de fichier a été rencontrée." lors de l'appel de socket.readInt(). Je suis confus quant à ce que cette erreur signifie que, puisque je ne suis pas la lecture d'un fichier? Je suis un peu unfamilier avec des sockets. Merci.
OriginalL'auteur AaronLS | 2009-08-24
Vous devez vous connecter pour publier un commentaire.
lors de la lecture d'un socket, c'est fermé, vous obtiendrez:
Error #2002: Operation attempted on invalid socket.
fin-de-fichier des erreurs se produisent généralement sur n'importe quel bytestreams, si vous lisez plus d'octets que ce qui est disponible ... c'est le cas pour les fichiers, sockets, etc. ... dans le cas de flash, il se produit lors de la lecture d'un
Socket
ou unByteArray
et peut-être même dans d'autres cas ...TCP/IP est forfait, mais émule un ruisseau ... ainsi, vous pouvez uniquement lire les données du flux, qui vous a été envoyé avec le protocole TCP des paquets ... vérifier
Socket::bytesAvailable
pour savoir, combien d'octets sont actuellement disponibles ... toujours garder à l'esprit que les données que vous écrivez à la prise en une seule opération, peut arriver dans plusieurs lots, chaque très probablement à l'origine de flash player pour déclenchersocketData
événements ...greetz
back2dos
OriginalL'auteur back2dos
Une fin-de-fichier d'erreur signifie, en général, de l'autre côté de la socket a fermé leur connexion, IIRC.
La raison pour laquelle il est en fin defichier est qu'à un niveau très faible au sein d'un programme, un fichier sur le disque et d'une douille sont représentés avec un nombre -- un descripteur de fichier -- que le système d'exploitation se traduit par l'objet représentant un fichier ou d'une douille ou d'un tuyau, ou quoi que ce soit.
Habituellement, vous pouvez éviter ce genre d'erreur en vérifiant si vous venez de lire dans un EOF. Si vous n'avez lu qu'un EOF, et vous essayez de lire à partir de la prise de fichier/nouveau, puis vous obtiendrez un EOF erreur.
Mise à jour: Selon le code ActionScript 9.0 documentation, vous n'avez en effet un événement si l'autre extrémité ferme le socket.
bonne estimation, mais pas vrai dans le cas de flash player ... voir ma réponse ...
OriginalL'auteur Mark Rushakoff