日期:2014-05-16  浏览次数:20817 次

一个关于网络编程的问题
sin_zero (它被加入到这个结构,并且长度和 struct sockaddr 一样) 应该使用函数 bzero() 或 memset() 来全部置零 为什么要置零

------解决方案--------------------
sin_zero只是一个填充(padding),使sockaddr_in对齐。所以填充成0是一般做法。但实际上应该不会用到的,所以不填关系也不大。但可能导致某些难以调试的bug。
------解决方案--------------------
对于ipv6和ipv4的地址结构不同,但是最后都要套用到socket中去用,所以需要对sockaddr_in添加8个字节满足sockaddr的16个字结长度的要求。
另外,这样也有一些备用扩充的用途