socket

AF_UINX  

AF_INET

AF_INET6

AF stands for "address family"

struct sockaddr {
    sa_family_t    sa_family;      /* address famliy (AF_* constant) */
    char           sa_data[14];    /* socket address (size varies according to socket domain) */
}

/* sun_ derives from socket unix. */
struct sockaddr_un {
    sa_family_t    sun_family;     /* Always AF_UINX */
    char           sun_path[108];  /* Null-terminated socket pathname */
}

/* defined in <netinet/in.h> */
struct in_addr {                   /* IPv4 4-byte address */
    in_addr_t      s_addr;         /* Unsigned 32-bit integer */
}

struct sockaddr_in{                /* IPv4 socket address */
    sa_family_t    sin_family;     /* Address family (AF_INET) */
    in_port_t      sin_port;       /* Port number */
    struct in_addr sin_addr;       /* IPv4 address */
    unsinged char  __pad[X];       /* Pad to size of 'sockaddr' structure (16 bytes) */
}

  

不积跬步无以至千里,要耐心,有很多细分的领域,不断积累。
原文地址:https://www.cnblogs.com/gnlsw/p/8849280.html