IPV4套接字地址

  1. #include <netinet/in.h>
  2. struct sockaddr_in
  3. {
  4. uint8_t sin_len;
  5. sa_family_t sin_family;
  6. in_port_t sin_port;
  7. struct in_addr sin_addr;
  8. ...
  9. };

通用套接字地址结构

  1. #include <sys/socket.h>
  2. struct sockaddr
  3. {
  4. uint8_t sa_len;
  5. sa_family_t sa_family;
  6. char sa_data[14];
  7. };

字节排序程序

  1. 术语“小端”和“大端”表示多个字节值的哪一端存储在该值的起始地址。网际协议使用大端字节序来传送这些多字节整数。
  1. #include <netinet/in.h>
  2. uint16_t htons(uint16_t host16bitvalue);
  3. uint32_t htonl(uint32_t host32bitvalue);
  4. uint16_t ntohs(uint16_t net16bitvalue);
  5. uint32_t ntohl(uint32_t net32bitvalue);

inet_pton和inet_ntop函数

  1. #include <arpa/inet.h>
  2. int inet_pton(int family, const char* strptr, void* addrptr);//成功:1;输入格式无效:0;出错:-1
  3. const char* inet_ntop(int family, const void* addrptr, char* strptr, size_t len);//失败:NULL;成功:结果