以你的代码示例讲讲,尽管你作为接收方,设置了接收缓冲区大小为30000,但实际上UDP协议本身并不保证完整性和可靠性,UDP包可能会在传输过程中被分片、丢失、重复或乱序到达。所以,即使你的通信长度不会超过30000,也不能保证每次接收到的UDP包的大小都完全等于发送方的数据长度。 所以,用变长结构体可以使你的代码更加灵活,适应不同大小的数据。它允许你动态分配内存来存储实际接收到的数据,并避免了提前指定一个固定大小可能造成的内存浪费。有点近似于动态数组malloc函数和静态数组的理解。
阅读量:1
点赞量:0