当前位置: 首页 > 知识库问答 >
问题:

使用Thrift发送二进制数据的最佳方式

田英卓
2023-03-14

我在c中有一个存储字节的结构,如下所示:

struct RemoteData 
{
    /// some other fields here

    unsigned char* buf;
    int bufLen;     
};

我需要通过节俭将这些数据发送到用C编写的远程服务。我发现了三种方法如何将此结构映射到节俭idl:

>

struct RemoteData 
{
    1: list<BYTE> buf,
    ...
}

使用二进制键入:

struct RemoteData 
{
    1: binary buf,
    ...
}

string类型存储数据:

struct RemoteData 
{
    1: string buf,
    ...
}

最好的办法是什么?

共有1个答案

佟颖逸
2023-03-14

节俭string类型中包含的值必须是UTF8编码的,否则某些客户端将无法读取它(例如Java节俭客户端)。

节俭<代码>列表

就与其他语言的客户端的互操作性和协议定义的正确性而言,二进制类型是最佳选择。

由于这三种定义产生的消息大小大致相同,因此我选择二进制:即使现在不需要与其他语言的互操作性,将来也可能需要它。

 类似资料:
  • 问题内容: 所以我一直在使用node.js(Js客户端和Android客户端)中的socket.io发送二进制数据时遇到麻烦。 没有太多信息,也没有: http://socket.io/blog/introducing-socket- io-1-0/ http://socket.io/get-started/chat/ 我需要使用套接字io发送我创建并填充的二进制数组。 他们给出的唯一代码如下:

  • 我正在开发一个查看器应用程序,其中服务器捕获图像,执行一些图像处理操作,这需要在客户端显示在HTML5画布上。我写的服务器是在VC和使用http://www.codeproject.com/Articles/371188/A-Cplusplus-Websocket-server-for-realtime-interact. 到目前为止,我已经实现了所需的功能。现在我需要做的就是优化。引用是一个用来

  • 问题内容: 我想知道哪种方法是将数据从dynamoDB发送到elasticsearch的最佳方法。 AWS开发工具包js。https://github.com/Stockflare/lambda-dynamo-to-elasticsearch/blob/master/index.js DynamoDB Logstash插件:https : //github.com/awslabs/logstash

  • 我需要使用Apache Thrift来定义要在Apache Kafka或直接RPC调用的帮助下在多个Scala微服务之间共享的公共数据结构。 考虑到以下情况,我想知道在Thrift中定义Scala字符类型的最佳方法是什么: Char是一个16位无符号整数(相当于Java的Char基元类型),是scala的一个子类型。AnyVal。Char的实例不由底层运行时系统中的对象表示。 在Apache Th

  • 问题内容: 我刚刚完成了将应用程序从Windows移植到Linux的工作。 我必须创建该应用程序的安装程序。 该应用程序 不是 开源的=>我应该分发该应用程序的二进制文件(可执行文件,几个.so文件,帮助文件和图像)。 我不喜欢第一种方法(RPM和DEB软件包),因为我不想为不同的Linux发行版保留不同的软件包。 为Linux分发二进制应用程序的 最佳方法 是什么? 问题答案: 经过几次使用商业

  • 我试图使用Java API将发送到,因为从开始,他们建议使用Java API而不是Scala API来获得更好的性能。 http://kafka.apache.org/090/documentation.html#ProducerAPI 我的XML文件有大约,我可以使用什么XML API来读取XML文件并转换为字符串,然后将该字符串发送到Kafka主题。 或者,我可以将XML转换为数据并将其发送给