linux socket 编程
文章目录1 struct sockaddr详解1 struct sockaddr详解struct sockaddr{unsigned short sa_family;// 地址家族,一般都是 "AF_xxx" 的形式。IPV4对应的是 AF_INETchar sa_data[14];// 14字节协议地址};但一般编程中并不直接针对此数据结构操作,而是使用另一个与 sockaddr 等价的数据结构
·
文章目录
1 struct sockaddr详解
struct sockaddr
{
unsigned short sa_family; // 地址家族,一般都是 "AF_xxx" 的形式。IPV4对应的是 AF_INET
char sa_data[14]; // 14字节协议地址
};
但一般编程中并不直接针对此数据结构操作,而是使用另一个与 sockaddr 等价的数据结构 sockaddr_in(在netinet/in.h中定义)
struct sockaddr_in {
short int sin_family; // 协议族
unsigned short int sin_port;// 端口号, 使用网络字节序
struct in_addr sin_addr; // 存储IP地址, 使用网络字节序
unsigned char sin_zero[8]; // 为了让 sockaddr 与 sockaddr_in 两个数据结构保持大小相同而保留的空字节
};
struct in_addr {
unsigned long s_addr;
};
常用函数:
字节序转换:htons() 把 unsigned short 类型从主机字节序转换到网络字节序
htonl() 把 unsigned long 类型从主机字节序转换到网络字节序
IP转换: inet_addr() 的功能是将一个点分十进制的IP转换成一个长整数型数(unsigned long)
更多推荐
已为社区贡献2条内容
所有评论(0)