C++ Boost::asio库的使用

本文最后更新于: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
//tcp connect
boost::asio::io_service io_service;

tcp::acceptor acceptor(io_service, tcp::endpoint(tcp::v4(), 5001));

tcp::socket socket(io_service);


acceptor.accept(socket);

// Set input buffer size

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";

//std::vector<int> instruction(instruction_str.begin(),instruction_str.end());

boost::asio::write(serial, boost::asio::buffer(instruction));


C++ Boost::asio库的使用
https://aki-yzh.github.io/2024/01/27/C++ Boost::asio库的使用/
作者
Aki-yzh
发布于
2024年1月27日
更新于
2024年1月27日
许可协议