如何使用Boost.Asio c?

如何使用Boost.Asio c?,第1张

概述我会尝试使用该库在多个平台上使用套接字Boost.Asio c. 我在这里下载了最新版本: http://sourceforge.net/projects/boost/files/boost/1.46.1/ 但是现在我在代码中使用了什么? 我编译了吗?包括够了吗? 你能告诉我这些步骤吗? 你如何使用它取决于你想做什么,;-). 文档可在此处找到: http://www.boost.org/doc/ 我会尝试使用该库在多个平台上使用套接字Boost.Asio c.
我在这里下载了最新版本:

http://sourceforge.net/projects/boost/files/boost/1.46.1/

但是现在我在代码中使用了什么?
我编译了吗?包括够了吗?
你能告诉我这些步骤吗?

解决方法 你如何使用它取决于你想做什么,;-).

文档可在此处找到:

http://www.boost.org/doc/libs/1_46_1/doc/html/boost_asio.html

您会发现许多应该满足您需求的示例.

对于构建,您应该注意,库依赖性取决于您是在windows还是linux上运行.看这里

http://www.boost.org/doc/libs/1_46_1/doc/html/boost_asio/using.html

特别是:

With MSVC or Borland C++ you may want
to add -DBOOST_DATE_TIME_NO_liB and
-DBOOST_REGEX_NO_liB to your project settings to disable autolinking of the
Boost.Date_Time and Boost.Regex
librarIEs respectively. Alternatively,
you may choose to build these
librarIEs and link to them

如果您不希望依赖于其他boost库,那么您可以从这里使用非boost(我认为是相同的asio)库:http://think-async.com/

对于其他文档的来源,请参阅SO:Best documentation for Boost:asio?上的这个问题

例如,要打开串口,您可能会编写如下内容:

/** Manage serial connections.*/class serial_manager{  boost::asio::io_service m_io_service;  std::string m_name;  const unsigned int m_baud_rate;  const enum flow_control::type m_flow_control;  const enum parity::type m_parity;  const enum stop_bits::type m_stop_bits;  const unsigned int m_char_size;  boost::asio::serial_port  m_SerialPort;  boost::system::error_code m_error;public:  /** A constructor.   *  @param name The dvice name,for example "COM1" (windows,or "/dev/ttyS0" (linux).   *  @param baud_rate The baud rate.    *  @param flow_control The flow control. Acceptable values are flow_control::none,flow_control::software,flow_control::harDWare.   *  @param parity The parity of the connection. Acceptable values are parity::none,parity::even,parity::odd.   *  @param stop_bits The number of stop bits. Acceptable values are stop_bits::one,stop_bits::one_point_five,stop::bits::two   *  @param char_size The number of characters in connection.   */  serial_manager(const std::string& name,const unsigned int& baud_rate  = 19200,const enum flow_control::type&   flow_control  = flow_control::none,const enum parity::type&         parity        = parity::none,const enum stop_bits::type&      stop_bits     = stop_bits::one,const unsigned int& char_size  = 8         ) ;  voID open();};voIDserial_manager::open() {  if (!m_SerialPort.is_open())     {      m_SerialPort.open(m_name,m_error);     if (m_error == boost::system::errc::no_such_file_or_directory )      {  //for example you trIEd to open "COM1" on a linux machine.        //... handle the error somehow     }      m_SerialPort.set_option(boost::asio::serial_port::baud_rate(m_baud_rate));      m_SerialPort.set_option(boost::asio::serial_port::flow_control(m_flow_control));      m_SerialPort.set_option(boost::asio::serial_port::parity(m_parity));      m_SerialPort.set_option(boost::asio::serial_port::stop_bits(m_stop_bits));      m_SerialPort.set_option(boost::asio::serial_port::character_size(m_char_size));    } }
总结

以上是内存溢出为你收集整理的如何使用Boost.Asio c?全部内容,希望文章能够帮你解决如何使用Boost.Asio c?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1213534.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存