如何在C ++和Java之间通过udp有效发送数据数组

时间:2019-04-15 17:57:02

标签: java c++ arrays udp double

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

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

double arrayTosend[100] 

int sendOk = sendto(out, arrayToSend, sizeof(arrayToSend), 0, (sockaddr*)&server, sizeof(server));

1 个答案:

答案 0 :(得分:0)

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

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