SOCKADDR_IN结构的最后一个字段是sin_zero,充当填充项的职责,以使SOCKADDR_IN结构和SOCKADDR结构的长度一样.
两者有何区别?

解决方案 »

  1.   

    // struct sockaddr_in    |
    // {                       |
    //    short   sin_family;   |
    //    u_short sin_port;   |
    //    struct  in_addr sin_addr;   |
    //    char    sin_zero[8];   |
    //  };   |
    // struct sockaddr    |
    // {   |
    //        u_short sa_family;              /* address family */   |
    //        char    sa_data[14];            /* up to 14 bytes of direct address */  |
    // };   |
    // typedef struct sockaddr SOCKADDR;   |
      

  2.   

    char    sin_zero[8];
    这个数据无用,只不过是为了和struct sockaddr 大小匹配加
    上去的;