typedef uint32_t in_addr_t //32位地址
struct in_addr {
__u32 s_addr;
};
#define __CONST_SOCKADDR_ARG __const struct sockaddr *
struct sockaddr {
sa_family_t sa_family; //协议簇
char sa_data[14]; //协议地址
};
#define __SOCKADDR_COMMON(sa_prefix) sa_family_t sa_prefix##family
struct sockadr_un
{
__SOCKADDR_COMMON(sun_); //协议 AF_UNIX
char sun_path[108]; //文件路径名
};
struct sockaddr_in
{
__SOCKADDR_COMMON(SIN_); //协议 AF_INET
in_port_t sin_port; //端口号
struct in_addr sin_addr; //IP地址
unsigned char sin_zero[sizeof(struct sockaddr) -
__SOCKADDR_COMMON_SIZE -
sizeof(in_port_t) -
sizeof(struct in_addr)]; //预留位,以适应struct sockaddr 位
};
struct in_addr {
__u32 s_addr;
};
#define __CONST_SOCKADDR_ARG __const struct sockaddr *
struct sockaddr {
sa_family_t sa_family; //协议簇
char sa_data[14]; //协议地址
};
#define __SOCKADDR_COMMON(sa_prefix) sa_family_t sa_prefix##family
struct sockadr_un
{
__SOCKADDR_COMMON(sun_); //协议 AF_UNIX
char sun_path[108]; //文件路径名
};
struct sockaddr_in
{
__SOCKADDR_COMMON(SIN_); //协议 AF_INET
in_port_t sin_port; //端口号
struct in_addr sin_addr; //IP地址
unsigned char sin_zero[sizeof(struct sockaddr) -
__SOCKADDR_COMMON_SIZE -
sizeof(in_port_t) -
sizeof(struct in_addr)]; //预留位,以适应struct sockaddr 位
};