如何在c ++和java之间通过udp有效地发送数据数组

问题描述 投票:1回答:1

我将通过udp socket发送一个双数组。我在Clinet端使用c ++中的Winsock库,在服务器端使用java。我目前的想法是用这个双数字数据制作一个字符串并发送。但是我觉得这不合适,需要双方转换为数值。我如何更有效地发送这些数据?

我尝试了以下但收到错误“类型的参数”double *“与sendto()函数中的类型”const char *“的参数不兼容”

double arrayTosend[100] 

int sendOk = sendto(out, arrayToSend, sizeof(arrayToSend), 0, (sockaddr*)&server, sizeof(server));
java c++ arrays udp double
1个回答
0
投票

我建议你使用Google's Protocol Buffers来处理数组的传输:

  • 它是在远程和内部进程之间序列化/反序列化消息的可靠机制。
  • 它易于使用和学习。
  • 它将生成在c ++和java进程上获取和接收数组所需的代码。
  • 如果将阵列更改为其他类型,或决定传输其他信息 - 协议缓冲区使用的消息格式将允许您轻松更改传输的数据,并将重新生成所有必需的样板代码。
© www.soinside.com 2019 - 2024. All rights reserved.