⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 basic_datagram_socket.hpp

📁 LINUX下
💻 HPP
📖 第 1 页 / 共 3 页
字号:
   *   * @param handler The handler to be called when the send operation completes.   * Copies will be made of the handler as required. The function signature of   * the handler must be:   * @code void handler(   *   const asio::error_code& error, // Result of operation.   *   std::size_t bytes_transferred           // Number of bytes sent.   * ); @endcode   * Regardless of whether the asynchronous operation completes immediately or   * not, the handler will not be invoked from within this function. Invocation   * of the handler will be performed in a manner equivalent to using   * asio::io_service::post().   *   * @note The async_send operation can only be used with a connected socket.   * Use the async_send_to function to send data on an unconnected datagram   * socket.   */  template <typename ConstBufferSequence, typename WriteHandler>  void async_send(const ConstBufferSequence& buffers,      socket_base::message_flags flags, WriteHandler handler)  {    this->service.async_send(this->implementation, buffers, flags, handler);  }  /// Send a datagram to the specified endpoint.  /**   * This function is used to send a datagram to the specified remote endpoint.   * The function call will block until the data has been sent successfully or   * an error occurs.   *   * @param buffers One or more data buffers to be sent to the remote endpoint.   *   * @param destination The remote endpoint to which the data will be sent.   *   * @returns The number of bytes sent.   *   * @throws asio::system_error Thrown on failure.   *   * @par Example   * To send a single data buffer use the @ref buffer function as follows:   * @code   * asio::ip::udp::endpoint destination(   *     asio::ip::address::from_string("1.2.3.4"), 12345);   * socket.send_to(asio::buffer(data, size), destination);   * @endcode   * See the @ref buffer documentation for information on sending multiple   * buffers in one go, and how to use it with arrays, boost::array or   * std::vector.   */  template <typename ConstBufferSequence>  std::size_t send_to(const ConstBufferSequence& buffers,      const endpoint_type& destination)  {    asio::error_code ec;    std::size_t s = this->service.send_to(        this->implementation, buffers, destination, 0, ec);    asio::detail::throw_error(ec);    return s;  }  /// Send a datagram to the specified endpoint.  /**   * This function is used to send a datagram to the specified remote endpoint.   * The function call will block until the data has been sent successfully or   * an error occurs.   *   * @param buffers One or more data buffers to be sent to the remote endpoint.   *   * @param destination The remote endpoint to which the data will be sent.   *   * @param flags Flags specifying how the send call is to be made.   *   * @returns The number of bytes sent.   *   * @throws asio::system_error Thrown on failure.   */  template <typename ConstBufferSequence>  std::size_t send_to(const ConstBufferSequence& buffers,      const endpoint_type& destination, socket_base::message_flags flags)  {    asio::error_code ec;    std::size_t s = this->service.send_to(        this->implementation, buffers, destination, flags, ec);    asio::detail::throw_error(ec);    return s;  }  /// Send a datagram to the specified endpoint.  /**   * This function is used to send a datagram to the specified remote endpoint.   * The function call will block until the data has been sent successfully or   * an error occurs.   *   * @param buffers One or more data buffers to be sent to the remote endpoint.   *   * @param destination The remote endpoint to which the data will be sent.   *   * @param flags Flags specifying how the send call is to be made.   *   * @param ec Set to indicate what error occurred, if any.   *   * @returns The number of bytes sent.   */  template <typename ConstBufferSequence>  std::size_t send_to(const ConstBufferSequence& buffers,      const endpoint_type& destination, socket_base::message_flags flags,      asio::error_code& ec)  {    return this->service.send_to(this->implementation,        buffers, destination, flags, ec);  }  /// Start an asynchronous send.  /**   * This function is used to asynchronously send a datagram to the specified   * remote endpoint. The function call always returns immediately.   *   * @param buffers One or more data buffers to be sent to the remote endpoint.   * Although the buffers object may be copied as necessary, ownership of the   * underlying memory blocks is retained by the caller, which must guarantee   * that they remain valid until the handler is called.   *   * @param destination The remote endpoint to which the data will be sent.   * Copies will be made of the endpoint as required.   *   * @param handler The handler to be called when the send operation completes.   * Copies will be made of the handler as required. The function signature of   * the handler must be:   * @code void handler(   *   const asio::error_code& error, // Result of operation.   *   std::size_t bytes_transferred           // Number of bytes sent.   * ); @endcode   * Regardless of whether the asynchronous operation completes immediately or   * not, the handler will not be invoked from within this function. Invocation   * of the handler will be performed in a manner equivalent to using   * asio::io_service::post().   *   * @par Example   * To send a single data buffer use the @ref buffer function as follows:   * @code   * asio::ip::udp::endpoint destination(   *     asio::ip::address::from_string("1.2.3.4"), 12345);   * socket.async_send_to(   *     asio::buffer(data, size), destination, handler);   * @endcode   * See the @ref buffer documentation for information on sending multiple   * buffers in one go, and how to use it with arrays, boost::array or   * std::vector.   */  template <typename ConstBufferSequence, typename WriteHandler>  void async_send_to(const ConstBufferSequence& buffers,      const endpoint_type& destination, WriteHandler handler)  {    this->service.async_send_to(this->implementation, buffers, destination, 0,        handler);  }  /// Start an asynchronous send.  /**   * This function is used to asynchronously send a datagram to the specified   * remote endpoint. The function call always returns immediately.   *   * @param buffers One or more data buffers to be sent to the remote endpoint.   * Although the buffers object may be copied as necessary, ownership of the   * underlying memory blocks is retained by the caller, which must guarantee   * that they remain valid until the handler is called.   *   * @param flags Flags specifying how the send call is to be made.   *   * @param destination The remote endpoint to which the data will be sent.   * Copies will be made of the endpoint as required.   *   * @param handler The handler to be called when the send operation completes.   * Copies will be made of the handler as required. The function signature of   * the handler must be:   * @code void handler(   *   const asio::error_code& error, // Result of operation.   *   std::size_t bytes_transferred           // Number of bytes sent.   * ); @endcode   * Regardless of whether the asynchronous operation completes immediately or   * not, the handler will not be invoked from within this function. Invocation   * of the handler will be performed in a manner equivalent to using   * asio::io_service::post().   */  template <typename ConstBufferSequence, typename WriteHandler>  void async_send_to(const ConstBufferSequence& buffers,      const endpoint_type& destination, socket_base::message_flags flags,      WriteHandler handler)  {    this->service.async_send_to(this->implementation, buffers, destination,        flags, handler);  }  /// Receive some data on a connected socket.  /**   * This function is used to receive data on the datagram socket. The function   * call will block until data has been received successfully or an error   * occurs.   *   * @param buffers One or more buffers into which the data will be received.   *   * @returns The number of bytes received.   *   * @throws asio::system_error Thrown on failure.   *   * @note The receive operation can only be used with a connected socket. Use   * the receive_from function to receive data on an unconnected datagram   * socket.   *   * @par Example   * To receive into a single data buffer use the @ref buffer function as   * follows:   * @code socket.receive(asio::buffer(data, size)); @endcode   * See the @ref buffer documentation for information on receiving into   * multiple buffers in one go, and how to use it with arrays, boost::array or   * std::vector.   */  template <typename MutableBufferSequence>  std::size_t receive(const MutableBufferSequence& buffers)  {    asio::error_code ec;    std::size_t s = this->service.receive(        this->implementation, buffers, 0, ec);    asio::detail::throw_error(ec);    return s;  }  /// Receive some data on a connected socket.  /**   * This function is used to receive data on the datagram socket. The function   * call will block until data has been received successfully or an error   * occurs.   *   * @param buffers One or more buffers into which the data will be received.   *   * @param flags Flags specifying how the receive call is to be made.   *   * @returns The number of bytes received.   *   * @throws asio::system_error Thrown on failure.   *   * @note The receive operation can only be used with a connected socket. Use   * the receive_from function to receive data on an unconnected datagram   * socket.   */  template <typename MutableBufferSequence>  std::size_t receive(const MutableBufferSequence& buffers,      socket_base::message_flags flags)  {    asio::error_code ec;    std::size_t s = this->service.receive(        this->implementation, buffers, flags, ec);    asio::detail::throw_error(ec);    return s;  }  /// Receive some data on a connected socket.  /**   * This function is used to receive data on the datagram socket. The function   * call will block until data has been received successfully or an error   * occurs.   *   * @param buffers One or more buffers into which the data will be received.   *   * @param flags Flags specifying how the receive call is to be made.   *   * @param ec Set to indicate what error occurred, if any.   *

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -