linux 网络编程【一】 socket地址
- linux socket中三种地址
- sockaddr普通的socket地址
linux socket中的地址转换struct sockaddr_un { sa_family_t sun_family; /*PF_UNIX或AF_UNIX */ char sun_path[UNIX_PATH_MAX]; /* 路径名 */ };
在一般的x86架构的PC中采用的是小端模式存储数据,而对于socket中所需要的是大端模式因而需要进行相关的转换。一般的转换函数有socket通用转换函数
ntohl将网络32位字节数据转换为主机数据ntohs将网络16位字节数据转换为主机数据htonl将主机32位字节数据转换为网络数据htons将网络16位字节数据转换为网络数据inet转换函数
inet_ntoa将网络字节的ip地址转换为十进制点分地址inet_aton将点分十进制地址转换为网络字节的ip地址inet_network将点分十进制转换为主机字节的32位数据总结
一般网络编程填值的时候使用sockaddr_in结构,而作为函数的参数传入的时候转换成sockaddr结构,都是16个字符长。