用C ++创建二进制(自定义长度)字符串

时间:2015-09-21 15:24:42

标签: c++ c++11 thrift thrift-protocol

我正在使用Apache Thrift RPC(编译为C ++)机制与Apache Flume进行通信。我必须使用此平台提供的特定API 我想发送二进制数据,但RPC函数只接受std :: string作为参数。因此,我只能发送第一次出现0x00之前的二进制数据。

u_char bin[10] = {'a','b',1,'d','e',0,'2','3','4','5'};
// Takes only the first 5 bytes, and sets a length of 5
string art_test((const char *)bin);

我搜索了源代码,我调用的函数将str.data()转换为(uint8_t *)并发送长度为str.size()的数据。

uint32_t ssize = static_cast<uint32_t>(str.size());
trans_->write((uint8_t*)str.data(), ssize);

有没有办法创建'二进制字符串',uint8_t作为数据并具有指定的长度?甚至可能使用所需的二进制数据创建我自己的字符串的内存表示。

0 个答案:

没有答案