Rol*_*and 2 c++ udp char sendto
我正在编写一个C++应用程序,它从一个设备读取几个电压.我在一个接收到这些测量,float[]我想通过UDP将这个数组发送到MATLAB脚本.
C++ - 函数sendto需要获取char[]缓冲区,我真的不知道如何将其float[]转换为char[]缓冲区,因此我可以在MATLAB中轻松地重新组装它.有任何想法吗?
我遇到的另一个问题是那条线
addr.sin_addr = inet_addr("127.0.0.1");
Run Code Online (Sandbox Code Playgroud)
inet_addr返回一个unsigned long,但我的编译器告诉我,=运算符在它的右侧不接受unsigend long数据类型.关于这个的任何Iideas?
您始终可以将任何对象变量视为字节序列.出于这个目的,明确允许(并且不违反别名或构成类型惩罚)将任何对象指针重新解释为指向字节数组(即任何char类型)中的第一个元素的指针.
例:
T x;
char const * p = reinterpret_cast<char const *>(&x);
for (std::size_t i = 0; i != sizeof x; ++i) { /* p[i] is the ith byte in x */ }
Run Code Online (Sandbox Code Playgroud)
对于你的情况:
float data[N];
char const * p = reinterpret_cast<char const *>(data);
write(fd, p, sizeof data);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2956 次 |
| 最近记录: |