在C ++中通过UDP发送整数数组

时间:2014-03-22 13:01:55

标签: c++ arrays sockets visual-c++ casting

我正在尝试使用C ++中的winsock编程将大小为480X640的整数数组发送到UDP上的另一台机器。我可以在发送之前将数组转换为char *,但我无法弄清楚如何将char *转换回整数数组。代码段如下所示:

int arrayData[480][640];    
char * arrayChar;

arrayChar = (char *)&arrayData;

// send it to the other end over UDP

// at the other end, receive and convert char * to integer array

这种类型转换是否有效?如果有人能帮助我将'arrayChar'转换回整数数组,那就太好了。

2 个答案:

答案 0 :(得分:0)

您可以使用reinterpret_cast,然后使用相同的方式将其转发回接收方。

答案 1 :(得分:0)

答案。

  1. 你不需要&并且最好在C ++中使用正确的类型转换。

    char * ptr = static_cast< char *>(arrayData);

  2. 对于演员表,您需要看到(How to cast simple pointer to a multidimensional-array of fixed size?

  3. 你有超过1MB的数据,这是很多数据包。你真的确定要使用UDP吗?这不能保证数据包按顺序到达(或根本没有)?