linux c常用结构体

2021-02-04

常用结构体

sockaddr

1
2
3
4
5
#include <sys/socket.h>
struct sockaddr {  
    sa_family_t sin_family;//地址族
    char sa_data[14]; //14字节,包含套接字中的目标地址和端口信息               
};

sockaddr_in

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
#include <netinet/in.h>
#include <arpa/inet.h>

struct sockaddr_in
{
    sa_family_t     sin_family;
    uint16_t        sin_port;
    struct in_addr  sin_addr;
    char            sin_zero[8];
}

struct in_addr
{
    In_addr_t       s_addr;
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
struct in6_addr
{
    union
    {
        uint8_t __u6_addr8[16];   // 128 bit
        #if defined __USE_MISC || defined __USE_GNU
        uint16_t __u6_addr16[8];  // 64 bit
        uint32_t __u6_addr32[4];  // 32 bit
        #endif
    } __in6_u;
    #define s6_addr         __in6_u.__u6_addr8
    #if defined __USE_MISC || defined __USE_GNU
    # define s6_addr16      __in6_u.__u6_addr16
    # define s6_addr32      __in6_u.__u6_addr32
    #endif
};
words: 162 tags: linux c