我使用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/