[英]Sending an integer array over UDP in C++
我正在嘗試使用C ++中的winsock編程通過UDP將大小為480X640的整數數組發送到另一台計算機。 我可以在發送之前將數組類型轉換為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”轉換回整數數組,那就太好了。
您可以使用reinterpret_cast ,然后使用相同的內容將其投射回接收方。
答案。
您不需要&,最好在C ++中使用正確的類型轉換。
char * ptr = static_cast <char *>(arrayData);
對於強制轉換,您需要參閱( 如何將簡單指針強制轉換為固定大小的多維數組? )
您那里有超過1MB的數據,這是很多數據包。 您真的確定要使用UDP,這不能保證數據包按順序(或根本沒有)到達嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.