struct sockaddr_in serv_addr;
bind(serv_sock,(struct sockaddr*)&serv_addr,sizeof(serv_addr));
// 其中两个结构体定义如下:
struct sockaddr_in
{
sa_family_t sin_family; //地址族
uint16_t sin_port; //端口号
struct in_addr sin_addr; //32位IP地址
char sin_zero[8]; //不使用,为了与struct sockaddr结构体保持一致
};
struct sockaddr
{
sa_family_t sin_family; //地址族
char sa_data[14]; //地址信息
};
注意: 在填充sockaddr_in结构体前要将数据转换成网络字节序。
大端序:高位字节存放到低位地址。
小端序:高位字节存放到高位地址。
网络字节序统一为大端序,大部分CPU采用的是小端序。