套接字地址结构
sockaddr_
开头
1.套接字地址结构的IP
地址,端口号总是以网络字节序存储
2.struct sockaddr, struct sockaddr_in, struct sockaddr_in6
2.对数值存储有大端,小端两种方式.
不同主机可以从其中选择一个作为其存储方式.
网络通信需要在主机间交换信息,故需规定传递的数值的统一存储方式.
故,有主机字节序,网络字节序的概念,及相互转换的函数.
uint16_t htons(uint16_t);
uint16_t ntohs(uint16_t);
uint32_t htonl(uint32_t);
uint32_t ntohl(uint32_t);
void* memset(void* dest, int c, size_t len);
void* memcpy(void* dest, const void* src, size_t nbytes);
int memcmp(const void* ptr1, const void* ptr2, size_t nbytes);
// 从字符串形式的"xxx.xxx.xxx.xxx"得到32位网络字节序下的相应数值
int inet_aton(const char* strptr, struct in_addr* addrptr);
// 从32位网络字节序下的相应数值得到字符串形式的"xxx.xxx.xxx.xxx"
char* inet_ntoa(struct in_addr inaddr);
// p代表表达,如对IPv4的"xxx.xxx.xxx.xxx",对IPv6的"x:x:x:x:x:x:a.b.c.d"/"x:x:x:x:x:x:x:x"
// n代表网络序数值格式
int inet_pton(int family, const char* strptr, void* addrptr);
const char* inet_ntop(int family, const void* addrptr, char* strptr, size_t len);