• <bdo id='6mqJo'></bdo><ul id='6mqJo'></ul>

      <legend id='6mqJo'><style id='6mqJo'><dir id='6mqJo'><q id='6mqJo'></q></dir></style></legend>
    1. <i id='6mqJo'><tr id='6mqJo'><dt id='6mqJo'><q id='6mqJo'><span id='6mqJo'><b id='6mqJo'><form id='6mqJo'><ins id='6mqJo'></ins><ul id='6mqJo'></ul><sub id='6mqJo'></sub></form><legend id='6mqJo'></legend><bdo id='6mqJo'><pre id='6mqJo'><center id='6mqJo'></center></pre></bdo></b><th id='6mqJo'></th></span></q></dt></tr></i><div id='6mqJo'><tfoot id='6mqJo'></tfoot><dl id='6mqJo'><fieldset id='6mqJo'></fieldset></dl></div>

        <small id='6mqJo'></small><noframes id='6mqJo'>

        <tfoot id='6mqJo'></tfoot>

        如何通过 C++ 中的 boost 套接字发送 ostream?

        时间:2024-08-13

        <small id='nNj0K'></small><noframes id='nNj0K'>

          <tbody id='nNj0K'></tbody>

            <bdo id='nNj0K'></bdo><ul id='nNj0K'></ul>
            <legend id='nNj0K'><style id='nNj0K'><dir id='nNj0K'><q id='nNj0K'></q></dir></style></legend>

            1. <i id='nNj0K'><tr id='nNj0K'><dt id='nNj0K'><q id='nNj0K'><span id='nNj0K'><b id='nNj0K'><form id='nNj0K'><ins id='nNj0K'></ins><ul id='nNj0K'></ul><sub id='nNj0K'></sub></form><legend id='nNj0K'></legend><bdo id='nNj0K'><pre id='nNj0K'><center id='nNj0K'></center></pre></bdo></b><th id='nNj0K'></th></span></q></dt></tr></i><div id='nNj0K'><tfoot id='nNj0K'></tfoot><dl id='nNj0K'><fieldset id='nNj0K'></fieldset></dl></div>

              <tfoot id='nNj0K'></tfoot>

                  本文介绍了如何通过 C++ 中的 boost 套接字发送 ostream?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我在使用 protobuf 进行进程间通信时遇到了一些问题.Protobuf 允许一组序列化格式:

                  I am facing some issues with my inter-process communication using protobuf. Protobuf allows a set of serialization formats:

                  SerializeToArray(void * data, int size) : bool
                  SerializeToCodedStream(google::protobuf::io::CodeOutputStream * output) : bool
                  SerializeToFileDescriptor(int file_descriptor) : bool
                  SerializeToOstream(ostream * output)
                  

                  我的问题是,我不知道如何将它与我正在使用的 boost asio 套接字一起使用,因为我实现了它们来发送字符串:

                  My problem is, I have no clue how to use it with the boost asio sockets I am using, as I implemented them to send strings:

                  boost::asio::write(socket, boost::asio::buffer(message),
                              boost::asio::transfer_all(), ignored_error);
                  

                  但我想发送 ostream.

                  But I would like to send the ostream.

                  推荐答案

                  Boost 的 asio 库在流缓冲区级别与 std iostream 集成

                  Boost's asio library integrates with std iostream on the level of streambuffers

                  所以写一个请求

                  boost::asio::streambuf request;
                  std::ostream request_stream(&request);
                  request_stream << "GET " << argv[2] << " HTTP/1.0
                  ";
                  request_stream << "Host: " << argv[1] << "
                  ";
                  request_stream << "Accept: */*
                  ";
                  request_stream << "Connection: close
                  
                  ";
                  
                  // Send the request.
                  boost::asio::write(socket, request);
                  

                  阅读回复:

                  boost::asio::streambuf response;
                  boost::asio::read_until(socket, response, "
                  ");
                  
                  // Check that response is OK.
                  std::istream response_stream(&response);
                  

                  复制流:

                  boost::asio::streambuf request;
                  std::ostream request_stream(&request);
                  request_stream << std::cin.rdbuf() << std::flush;
                  
                  // Send the request.
                  boost::asio::write(socket, request);
                  

                  这篇关于如何通过 C++ 中的 boost 套接字发送 ostream?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:C++流作为重载operator<<时的参数 下一篇:您可以使用 Boost.Regex 来解析流吗?

                  相关文章

                • <tfoot id='qs9lh'></tfoot>
                      <bdo id='qs9lh'></bdo><ul id='qs9lh'></ul>

                    <small id='qs9lh'></small><noframes id='qs9lh'>

                    <legend id='qs9lh'><style id='qs9lh'><dir id='qs9lh'><q id='qs9lh'></q></dir></style></legend>
                      <i id='qs9lh'><tr id='qs9lh'><dt id='qs9lh'><q id='qs9lh'><span id='qs9lh'><b id='qs9lh'><form id='qs9lh'><ins id='qs9lh'></ins><ul id='qs9lh'></ul><sub id='qs9lh'></sub></form><legend id='qs9lh'></legend><bdo id='qs9lh'><pre id='qs9lh'><center id='qs9lh'></center></pre></bdo></b><th id='qs9lh'></th></span></q></dt></tr></i><div id='qs9lh'><tfoot id='qs9lh'></tfoot><dl id='qs9lh'><fieldset id='qs9lh'></fieldset></dl></div>