网络编程中的辅助性函数总结
1.
inet_aton:将点分十进制IP转化为网络字节序存放在addr中,并返回该网络字节序对应的整数。
inet_addr:将点分十进制IP转化为网络字节序(二进制位的大端存储)
2.
inet_ntop:十进制转十六进制
inet_pton:十六进制转十进制
3.表示ip地址相关的数据结构都定义在netinet/in.h。
typedef uint32_t in_addr_t; 网络内部用来表示IP地址的类型
struct in_addr
{
in_addr_t s_addr;
};
struct sockaddr_in
{
__SOCKADDR_COMMON (sin_);
in_port_t sin_port; /* Port number. */
struct in_addr sin_addr; /* Internet address. */
/* Pad to size of `struct sockaddr'. */
unsigned char sin_zero[sizeof (struct sockaddr) -
__SOCKADDR_COMMON_SIZE -
sizeof (in_port_t) -
sizeof (struct in_addr)];
};
struct sockaddr 这个结构体是linux的网络编程接口中用来表示IP地址的标准结构体,bind、connect等函数中都需要这个结构体,这个结构体是兼容IPV4和IPV6的。在实际编程中这个结构体会被一个struct sockaddr_in或者一个struct sockaddr_in6所填充