struct sockaddr_in

See also
./code/sockaddr_in.h
 1// https://github.com/lattera/glibc/blob/master/bits/sockaddr.h
 2/* POSIX.1g specifies this type name for the `sa_family' member.  */
 3typedef unsigned short int sa_family_t;
 4
 5#define __SOCKADDR_COMMON(sa_prefix) sa_family_t sa_prefix##family
 6
 7// https://github.com/lattera/glibc/blob/master/bits/socket.h
 8
 9struct sockaddr {
10  __SOCKADDR_COMMON(sa_); /* Common data: address family and length.  */
11  char sa_data[14];       /* Address data.  */
12};
13
14// https://github.com/lattera/glibc/blob/master/inet/netinet/in.h
15struct sockaddr_in {
16  __SOCKADDR_COMMON(sin_);
17  in_port_t sin_port;      /* Port number.  */
18  struct in_addr sin_addr; /* Internet address.  */
19
20  /* Pad to size of `struct sockaddr'.  */
21  unsigned char sin_zero[sizeof(struct sockaddr) - __SOCKADDR_COMMON_SIZE -
22                         sizeof(in_port_t) - sizeof(struct in_addr)];
23};
24
25typedef uint32_t in_addr_t;
26struct in_addr {
27  in_addr_t s_addr;
28};
29
30/* Address to accept any incoming messages.  */
31#define INADDR_ANY ((in_addr_t)0x00000000)
32/* Address to send to all hosts.  */
33#define INADDR_BROADCAST ((in_addr_t)0xffffffff)
34/* Address indicating an error return.  */
35#define INADDR_NONE ((in_addr_t)0xffffffff)
36
37/* Network number for local host loopback.  */
38#define IN_LOOPBACKNET 127
39/* Address to loopback in software to local host.  */
40#ifndef INADDR_LOOPBACK
41#define INADDR_LOOPBACK ((in_addr_t)0x7f000001) /* Inet 127.0.0.1.  */
42#endif