Article title: Socket programming address structure in Linux. Linux is a technology channel of the IT lab in China. Includes basic categories such as desktop applications, Linux system management, kernel research, embedded systems, and open source.
The network communication program in Linux must deal with a structure, which is socket address. For example, functions such as bind and connect must use the socket address structure. We need to understand the socket address. In fact, in linux, a general address structure struct sockaddr is defined for different socket domains. its specific definition is as follows:
{unsigned short int sa_family;char sa_data[14];}
|
Struct sockaddr
Sa_family is the domain parameter used to call the socket () function, and sa_data is stored with 14 characters in length. For sockets in different domains, the general address structure corresponds to different definitions. for example, in a general AF_INET domain, the socket address is defined as follows:
Struct sockaddr_in {unsigned short int sin_family; uint16_t sin_port; struct in_addr sin_addr; unsigned char sin_zero [8]; // unused} struct in_addr {uint32_t s_addr ;}
|
When the socket domain is different from AF_INET, the specific address definition is different, but the size and capacity of the entire address structure are consistent with the general address structure.