Lorsque async_read_some() renvoie une exception de EOF, cela signifie-t-il que le serveur a arrêté d'envoyer des données ou que la connexion est fermée? J'ai cette confusion comme je ne peux pas trouver une méthode pour savoir si le client a reçu toutes les données du serveur.EOF dans async_read() dans boost :: asio
9
A
Répondre
10
Indique que la connexion est fermée. Bien documenté elswhere il est encore applicable:
Un code d'erreur de
boost::asio::error::eof
indique que la connexion a été fermée par les pairs.
Si un client a besoin de savoir que toutes les données ont été reçues du serveur, pensez à prendre en charge le tramage dans le protocole de communication. Boost.Asio fournit des opérations de niveau supérieur pour vous faciliter la tâche. Par exemple async_read_until() peut être utilisé sur des protocoles où un certain ensemble de caractères est utilisé pour indiquer la fin d'un message, et async_read() peut être utilisé pour des protocoles de longueur fixe ou des protocoles de longueur variable avec un en-tête de longueur fixe.
Questions connexes
- 1. Boost :: asio et async_read
- 2. async_read "en deux étapes" avec boost asio
- 3. boost :: asio :: async_read texutal condition d'arrêt?
- 4. boost :: asio tcp async_read ne retourne jamais
- 5. Utiliser boost :: asio :: async_read avec stdin?
- 6. L'utilisation de boost :: asio :: async_read échoue mais boost :: asio :: read fonctionne (j'utilise io_stream.run_one())
- 7. Est-il plus efficace d'utiliser boost :: asio :: basic_stream_socket :: async_read_some au lieu de boost :: asio :: async_read?
- 8. Retourne le nombre d'octets lus par boost :: asio :: async_read
- 9. boost asio async_read connexion d'en-tête se ferme trop tôt
- 10. boost :: asio async_read garantir que tous les octets sont lus
- 11. boost :: asio :: async_read erreur de compilation de liaison
- 12. Boost :: asio :: async_read ne se limite pas à la condition
- 13. boost :: asio
- 14. boost :: asio :: async_write() versus boost :: asio :: write()
- 15. boost :: appels serveur asio et récursifs
- 16. boost asio et exemple coroutine2
- 17. délai d'attente en utilisant boost :: Met en œuvre asio :: async_read sans courir appel io_service
- 18. Est-ce que je reçois une condition de course avec mon boost asio async_read?
- 19. Comment faire pour que boost :: asio :: async_read retourne quand le caractère de terminaison est atteint
- 20. Est-il sécuritaire de manipuler streambuf après avoir boost :: asio :: async_read?
- 21. Boost Asio - ubuntu
- 22. Boost asio raw sockets
- 23. boost :: asio set_option erreur
- 24. Boost asio document d'architecture
- 25. Boost asio udp waitForReadyRead
- 26. BOOST ASIO - sockets asynchrones
- 27. Ressource temporairement indisponible dans Boost ASIO
- 28. Verbosité dans boost asio en utilisant ssl
- 29. Utiliser boost :: asio :: deadline_timer dans un thread
- 30. boost :: asio error async_send