AF_INET address family

This address family provides Inter Process Communications between processes that run on the same system or on different systems. Addresses for AF_INET sockets are IP addresses and port number. You can specify an IP address for an AF_INET socket either as an IP address, such as 130.99.128.1, or in its 32–bit form, X'82638001'.

For a socket application that uses the Internet Protocol version 4 (IPv4), the AF_INET address family uses the sockaddr_in address structure. When you use _XOPEN_SOURCE macro, the AF_INET address structure changes to be compatible with BSD 4.4/UNIX 98 specifications. For the sockaddr_in address structure, these differences are summarized in the table:

Table 4. Differences between BSD 4.3 and BSD 4.4/UNIX 98 for sockaddr_in address structure
BSD 4.3 sockaddr_in address structure BSD 4.4/UNIX 98 sockaddr_in address structure
struct sockaddr_in {
short sin_family;
u_short sin_port;
struct in_addr sin_addr;
char sin_zero[8];
};
struct sockaddr_in {
uint8_t sin_len;
sa_family_t sin_family;
u_short sin_port;
struct in_addr sin_addr;
char sin_zero[8];
};

Table 5. AF_INET address structure
Address structure field Definition
sin_len This field contains the length of the address for UNIX® 98 specifications.
Note:
The: sin_len field is only provided for BSD 4.4 compatibility. It is not necessary to use this field even when using BSD 4.4/UNIX 98 compatibility. The field is ignored on input addresses.
sin_family This field contains the address family, which is always AF_INET when TCP or UDP is used.
sin_port This field contains the port number.
sin_addr This field contains the Internet address.
sin_zero This field is reserved. Set this field to hexadecimal zeros.

 

AF_INET address family sockets can be either connection-oriented (type SOCK_STREAM) or they can be connectionless (type SOCK_DGRAM). Connection-oriented AF_INET sockets use TCP as the transport protocol. Connectionless AF_INET sockets use UDP as the transport protocol. When you create an AF_INET domain socket, you specify AF_INET for the address family in the socket program. AF_INET sockets can also use a type of SOCK_RAW. If this type is set, the application connects directly to the IP layer and does not use either the TCP or UDP transports.

 

 

你可能感兴趣的:(AF_INET address family)