我使用openframeworks插件udpManager进行编程。

udp接收器端的示例代码如下:

void ofApp::update()
{
    char udpMessage[1000];
    udpConnection.Receive(udpMessage,1000);
    string message=udpMessage;
}


但是,如果我想发送byte [](不使用udp发送器,请使用其他语言),可以通过u_int8 []或int []接收吗?

最佳答案

简短的回答:是的,您可以。这是怎么回事。

您所要做的就是将udpMessage类型的char映射到u_int8[]int[]

uint8_t *destinationArray = NULL;

destinationArray = (uint8_t*)&udpMessage;


之所以起作用,是因为您只是在udpMessage的内存中映射位置,只有将其解释为uint8_t的数组。您可以在[]上使用下标运算符destinationArray,但是,请确保检查出界。

另外,请注意,因为内存映射对类型大小很敏感。如果char的大小与实现中的uint8_t不同,则将导致数据映射不正确。

关于c++ - openframeworks udp管理器只能接收char []吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26805590/

10-11 19:05