Quelle est la différence entre asio::tcp::socket async read some et async receive?
Quelle est la différence entre:
boost::asio::tcp::socket::async_read_some()
boost::asio::tcp::socket::async_receive()
Qu'est-ce que je devrais préférer?
27
demandé sur
deft_code
2010-02-10 18:51:26
3 réponses
17
répondu
Éric Malenfant
2010-02-10 17:11:06
je crois que les deux sont essentiellement identiques. La raison pour laquelle ils fournissent les deux est de fournir des interfaces similaires aux deux iostream (qui ont un read_some
membre) et les sockets (qui ont un receive
).
comme L'a souligné Peter Tseng,async_receive
ne aussi une surcharge qui accepte socket_base::message_flags
async_read_some
n'est pas.
22
répondu
Jerry Coffin
2016-12-14 00:56:04
Confirmation de tout le monde ici avec deux liens:
- https://github.com/boostorg/asio/blob/36eef63a9cf8ae609716d76ccb3906ff9769d53a/include/boost/asio/basic_stream_socket.hpp#L558
- https://github.com/boostorg/asio/blob/36eef63a9cf8ae609716d76ccb3906ff9769d53a/include/boost/asio/basic_stream_socket.hpp#L834
Le code est exactement le même. Cependant async_receive
a une surcharge de message_flags, qui notamment vous permet de spécifier asio::socket_base::message_peek
.
2
répondu
Adrien Clerc
2016-12-14 00:45:42