#include typedef uint32_t in_addr_t;
int inet_aton(const char *cp, struct in_addr *inp);
in_addr_t inet_addr(const char *cp);
in_addr_t inet_network(const char *cp);
char *inet_ntoa(struct in_addr in);
struct in_addr inet_makeaddr(int net, int host);
in_addr_t inet_lnaof(struct in_addr in);
in_addr_t inet_netof(struct in_addr in);
// Internet address.
struct in_addr {
union {
struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b;
struct { u_short s_w1,s_w2; } S_un_w;
u_long S_addr; /* port in network byte order */
} S_un;
#define s_addr S_un.S_addr
};
// Socket address, internet style.
struct sockaddr_in { // struct sockaddr的一种特殊形式
short sin_family; /* address family: AF_INET */
u_short sin_port; /* port in network byte order */
struct in_addr sin_addr; /* port in network byte order */
char sin_zero[8]; /* 8 byte pad */
};
// Structure used by kernel to store most addresses.
struct sockaddr {
u_short sa_family; /* address family */
char sa_data[14]; /* up to 14 bytes of direct address */
};
struct in_addr {
unsigned long int s_addr;
}