Quando async_read_some() restituisce un'eccezione di EOF significa che il server ha interrotto l'invio di dati o indica che la connessione è chiusa. Sto avendo questa confusione perché non trovo un metodo per sapere se il client ha ricevuto tutti i dati dal server.EOF in async_read() in boost :: asio
risposta
Indica che la connessione è stata chiusa. Sebbene documentato elswhere è ancora applicabile:
Un codice di errore di
boost::asio::error::eof
indica che la connessione è stata chiusa dal peer.
Se un client ha bisogno di sapere che tutti i dati sono stati ricevuti dal server, prendere in considerazione la possibilità di supportare il framing nel protocollo di comunicazione. Boost.Asio fornisce operazioni di livello superiore per semplificare la procedura. Ad esempio, async_read_until() può essere utilizzato su protocolli in cui viene utilizzato un determinato set di caratteri per indicare la fine di un messaggio e async_read() può essere utilizzato per protocolli di lunghezza fissa o di lunghezza variabile con un'intestazione di lunghezza fissa.
- 1. E 'più efficiente usare boost :: asio :: basic_stream_socket :: async_read_some invece di boost :: asio :: async_read?
- 2. boost :: asio async_read garantisce che tutti i byte siano letti
- 3. Lettura simultanea e async_read_some in boost asio
- 4. boost :: asio :: async_write() rispetto boost :: asio :: write()
- 5. Boost ASIO IO_SERVICE Implementazione?
- 6. Chi utilizza Boost ASIO?
- 7. Asio senza Boost
- 8. boost :: broadcasting ASIO UDP
- 9. boost :: asio over SocketCAN
- 10. Boost Asio message_flags
- 11. boost :: asio esempio multicast
- 12. boost asio e endian
- 13. Punzonatura con boost :: asio
- 14. selezionare la funzionalità in boost :: asio
- 15. Certificati SSL e Boost asio
- 16. Boost :: Asio: io_service.run() vs sondaggio() o come integrare boost :: asio in mainloop
- 17. Lettura di oggetti Protobuf tramite boost :: asio :: read_async
- 18. boost :: asio e oggetto attivo
- 19. Boost.Asio: Operazione annullata a async_read
- 20. boost :: asio, thread e sincronizzazione
- 21. Lavorare con boost :: asio :: streambuf
- 22. Boost Asio e Web Sockets?
- 23. Unit-testing and boost :: asio
- 24. boost :: asio :: acceptor - accetta nuove connessioni in entrata mentre quelle vecchie sono ancora aperte
- 25. Come leggere in modo asincrono su std :: string usando Boost :: asio?
- 26. Quando chiamo boost :: asio :: streambuf :: consume() e boost :: asio :: streambuf :: commit()?
- 27. Boost di interrupt :: read asincrono asio?
- 28. Accettare insieme IPv4 e IPv6 in boost :: asio
- 29. boost asio in attesa asincrona su una variabile di condizione
- 30. Invio di dati grezzi con write() in boost :: asio