本文最后更新于:2024年1月27日 下午
C++ Boost::asio库的使用
boost 库是一个优秀的,可移植的,开源的 C++ 库,它是由 C++ 标准委员会发起的,其中一些内容已经成为了下一代 C++ 标准库的内容,在 C++ 社区中影响甚大,是一个不折不扣的准标准库,它的功能十分强大,弥补了 C++ 很多功能函数处理上的不足。
Boost库的下载安装
1 2 3 4 5 6 7
| wget https://dl.bintray.com/boostorg/release/1.76.0/source/boost_1_76_0.tar.gz
tar -xzvf boost_1_76_0.tar.gz
./bootstrap.sh --prefix=/usr/local
./b2 install
|
Boost库的使用
头文件
1
| #include <boost/asio.hpp>
|
tcp操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| boost::asio::io_service io_service;
tcp::acceptor acceptor(io_service, tcp::endpoint(tcp::v4(), 5001));
tcp::socket socket(io_service);
acceptor.accept(socket);
boost::asio::socket_base::receive_buffer_size option(1028 * Para.FRAME_SIZE);
socket.set_option(option);
......
std::vector<short> data(whole_num * for_nums);
boost::asio::read(socket, boost::asio::buffer(data));
|
串口操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| boost::asio::io_service io;
boost::asio::serial_port serial(io);
serial.open("/dev/ttyUSB1");
serial.set_option(boost::asio::serial_port::baud_rate(3000000));
std::string instruction = "scan start -1 stream_on adc lvds\n";
boost::asio::write(serial, boost::asio::buffer(instruction));
|