##### basic_datagram_socket::receive_from (1 of 3 overloads)

Receive a datagram with the endpoint of the sender.

    template<
        typename MutableBufferSequence>
    std::size_t receive_from(
        const MutableBufferSequence & buffers,
        endpoint_type & sender_endpoint);

This function is used to receive a datagram. The function call will block until data has been received successfully or an error occurs.

###### Parameters

buffers

  One or more buffers into which the data will be received.

sender_endpoint

  An endpoint object that receives the endpoint of the remote sender of the datagram.

###### Return Value

The number of bytes received.

###### Exceptions

asio::system_error

  Thrown on failure.

###### Example

To receive into a single data buffer use the `buffer` function as follows:

    asio::ip::udp::endpoint sender_endpoint;
    socket.receive_from(
        asio::buffer(data, size), sender_endpoint);

See the `buffer` documentation for information on receiving into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.