IPV4套接字地址
#include <netinet/in.h>
struct sockaddr_in
{
uint8_t sin_len;
sa_family_t sin_family;
in_port_t sin_port;
struct in_addr sin_addr;
...
};
通用套接字地址结构
#include <sys/socket.h>
struct sockaddr
{
uint8_t sa_len;
sa_family_t sa_family;
char sa_data[14];
};
字节排序程序
术语“小端”和“大端”表示多个字节值的哪一端存储在该值的起始地址。网际协议使用大端字节序来传送这些多字节整数。
#include <netinet/in.h>
uint16_t htons(uint16_t host16bitvalue);
uint32_t htonl(uint32_t host32bitvalue);
uint16_t ntohs(uint16_t net16bitvalue);
uint32_t ntohl(uint32_t net32bitvalue);
inet_pton和inet_ntop函数
#include <arpa/inet.h>
int inet_pton(int family, const char* strptr, void* addrptr);//成功:1;输入格式无效:0;出错:-1
const char* inet_ntop(int family, const void* addrptr, char* strptr, size_t len);//失败:NULL;成功:结果