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