如何在 c++ 和 java 之间通过 udp 有效地发送数据数组
How to send efficiently a data array over udp between c++ and java
我将通过udp套接字发送一个双数组。我在Clinet端使用C ++中的Winsock库,在服务器端使用java。我目前的想法是用这个双精度数字数据制作一个字符串并发送。但是我觉得这不合适,需要将两侧转换为数值。如何更有效地发送此数据?
我尝试了以下方法,但收到错误"类型为"双*"的参数与 sendto(( 函数中"const char *"类型的参数不兼容"
double arrayTosend[100]
int sendOk = sendto(out, arrayToSend, sizeof(arrayToSend), 0, (sockaddr*)&server, sizeof(server));
我建议你使用谷歌的协议缓冲区来处理数组的传输:
- 它是在远程进程和内部进程之间序列化/反序列化消息的可靠机制。
- 它易于使用和学习。
- 它将生成在 c++ 和 java 进程上获取和接收数组所需的代码。
- 如果将数组更改为其他类型,或决定传输其他信息 - 协议缓冲区使用的消息格式将允许您轻松更改传输的数据,并将重新生成所有必需的样板代码。
相关文章:
- 有效地使用std::unordered_map来插入或增加键的值
- 如何有效地在 std::vector 中插入一对?
- 有效地计算多维数组的累积和?
- 如何有效地计算将单位立方体映射到自身的反射和旋转?
- 有效地将大数存储为 2 的幂用于路径问题
- 如何在C++中写入 1000 个文件时有效地缓冲
- 如何有效地找到数组中三元组和的最小差异?
- 如何在C++中有效地将数字值重新分配给字符数组
- C++有效地找到向量中第一个最接近的匹配值?
- 如何有效地操作满足给定谓词的向量中的所有项目?
- 有效地将数据加载到 std::vector 中<char>
- 如何在使用 cin 请求 int 时有效地使用户输入万无一失?
- C++:有效地将Sha256摘要放入OpenSSL Bignum?
- 如何有效地收集给定数组中的重复元素?
- 如何有效地修剪和合并四叉树中的节点?
- 可以有效地转换 std::any 与 std::any_cast
- 只需要知道我在c ++中打印模式的方式是否有效,或者有另一种方法可以有效地做到这一点
- 如何使用包含内部类的类实例有效地从内部类访问成员?
- 当表示为对象的一维向量时,有效地旋转 NxM 矩阵 (C++)
- 如何在 c++ 和 java 之间通过 udp 有效地发送数据数组