Tôi bắt đầu làm việc với ổ cắm TCP của Boost Asio. Sự khác nhau giữa read_some
và receive
và sự khác nhau giữa write_some
và send
là gì? Cảm ơn!Sự khác biệt giữa read_some/write_some và nhận/gửi?
Trả lời
Theo tôi nhớ, read_some và nhận được thực sự đang thực hiện tương tự. Tôi nghĩ chỉ nhận được cuộc gọi read_some hoặc ngược lại. Việc đặt tên đến từ ý tưởng xử lý một ổ cắm như một tập tin (đọc/ghi), trong khi một tên khác xuất phát từ một quan điểm kết nối (gửi/nhận). Điều này cũng đúng cho write_some và gửi.
giống nhau. . Cả hai gọi this-> get_service() gửi()
/// Send some data on the socket.
/**
* This function is used to send data on the stream socket. The function
* call will block until one or more bytes of the data has been sent
* successfully, or an until error occurs.
*
* @param buffers One or more data buffers to be sent on the socket.
*
* @returns The number of bytes sent.
*
* @throws boost::system::system_error Thrown on failure.
*
* @note The send operation may not transmit all of the data to the peer.
* Consider using the @ref write function if you need to ensure that all data
* is written before the blocking operation completes.
*
* @par Example
* To send a single data buffer use the @ref buffer function as follows:
* @code
* socket.send(boost::asio::buffer(data, size));
* @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(const ConstBufferSequence& buffers)
{
boost::system::error_code ec;
std::size_t s = this->get_service().send(
this->get_implementation(), buffers, 0, ec);
boost::asio::detail::throw_error(ec, "send");
return s;
}
////////////////////////////////////////////
template <typename ConstBufferSequence>
std::size_t write_some(const ConstBufferSequence& buffers)
{
boost::system::error_code ec;
std::size_t s = this->get_service().send(
this->get_implementation(), buffers, 0, ec);
boost::asio::detail::throw_error(ec, "write_some");
return s;
}
từ basic_stream_socket.hpp
Trong BOOST ASIO documentation, phần TCP Clients nói:
dữ liệu có thể được đọc từ hay viết vào ổ cắm TCP được kết nối bằng cách sử dụng các hàm thành viên nhận được(), async_receive(), send() hoặc async_send() thành viên . Tuy nhiên, vì chúng có thể dẫn đến short writes or reads, một ứng dụng thường sẽ sử dụng các hoạt động sau đây thay thế: đọc(), async_read(), write() và async_write().
- 1. Sự khác biệt giữa $ (...) và `...`
- 2. Sự khác biệt giữa. và #
- 3. Sự khác biệt giữa $ * và $ @
- 4. Sự khác biệt giữa ". +" Và ". +?"
- 5. Sự khác biệt giữa "**/* /" và "** /"?
- 6. Sự khác biệt giữa = và: =
- 7. Sự khác biệt về sự khác biệt giữa Matplotlib giữa Agg và Cairo
- 8. Sự khác biệt giữa Html.RenderAction và Html.Action
- 9. Sự khác biệt giữa cookie và phiên?
- 10. Sự khác biệt giữa '.' và "." trong java
- 11. Sự khác biệt giữa SimpleDB và S3
- 12. C++ - Sự khác biệt giữa (*). và ->?
- 13. Sự khác biệt giữa offsetHeight và clientHeight
- 14. Sự khác biệt giữa RDLC và SSRS
- 15. Sự khác biệt giữa "\ n" và Environment.NewLine
- 16. Sự khác biệt giữa qt và PyQt4
- 17. Sự khác biệt giữa AForge và OpenCV
- 18. Sự khác biệt giữa toFixed() và toPrecision()?
- 19. sự khác biệt giữa cacao và cocoatouch
- 20. Sự khác biệt giữa smtpClient.send() và smtpClient.SendAsync()?
- 21. Sự khác biệt giữa window.location.host và window.location.hostname
- 22. Sự khác biệt giữa DTLS và TLS
- 23. Sự khác biệt giữa Mealy và Moore
- 24. sự khác biệt giữa createRfcommSocketToServiceRecord và createRfcommSocket
- 25. Sự khác biệt giữa Arrays.sort() và Arrays.parallelSort()
- 26. sự khác biệt giữa orm và pdo
- 27. Sự khác biệt giữa nproc và ulimit?
- 28. Sự khác biệt giữa apc_add và apc_store?
- 29. Sự khác biệt giữa mb_substr và substr
- 30. Sự khác biệt giữa p4diff và p4diff2
Bạn có một số tham khảo/liên kết không? Tôi không thể tìm thấy bất kỳ tài liệu nào trong tài liệu tăng cường và các ví dụ tăng không sử dụng 'send' /' receive'. – overcoder