IPv4套接字地址以sockaddr_in 命名,定义在<netinet/in.h> 头文件中。
对于大多数套接字函数(比如: bind, connect, sendto等等)的参数通常是套接字地址结构的引用(也就是以指向该结构的指针),但是,为让这些函数能够处理来自于任何协议族的套接字地址结构。我们为此专门在<sys/socket.h> 头文件定义了一个通用套接字地址结构。
struct sockaddr { uint8_t sa_len; sa_family_t sa_family; // 地址协议族: AF_xxx value char sa_data[14]; // 特殊的协议地址 }int bind(int, struct sockaddr *, socklen_t); 在调用时都必须要将特定协议的套接字结构地址的指针进行强制类型转换为指向通用套接字地址结构的指针;
struct sockaddr_in serv; //IPv4地址 bind(sockfd, (struct sockaddr *) & serv, sizeof(serv));