单片机型号:STM32F407VGT6
在进行IPV6的UDP设计时,偶然发现一个问题,就是大部分套接字函数都需对地址进行强制转换,先看一下程序:
这是bind函数:
bind(sockIPV6, (struct sockaddr*)&sockAddr, sizeof(sockAddr))
这是recvfrom函数:
recvfrom(sockIPV6, UdpBuffer, 100, 0, (struct sockaddr*)&sockAddr, &slen)
这是sendto函数:
sendto(sockIPV6, UdpBuffer, len, 0, (const struct sockaddr*)&sockAddr, sizeof(sockAddr))
无一例外,这些函数在处理sockAddr之前都进行了强制数据类型转换,将其转换为sockaddr。