UNP 套接字编程简介
在<netinet/in.h>中声明了IPV4的地址结构
struct in_addr{ in_addr_t s_addr; //32bit }; struct sockaddr_in{ uint8_t sin_len; sa_family_t sa_family; in_port_t sin_port; struct in_addr sin_addr; char sin_zero[8]; };
结构总大小至少 16 字节
sockeaddr_in serv;
serv.sin_addr 引用 in_addr 结构
serv.sin_addr.s_addr 引用 in_addr_t (通常是无符号32bit)
二者均引用同一个32位IPv4地址
通用套接口地址结构
套接口地址结构总是通过指针来传递,那么这个指针的数据类型就是通用套接口类型
<sys/socket.h>
struct sockaddr{ uint8_t sa_len; sa_family_t sa_family; char sa_data[14]; };
网络字节与主机字节转换用
htons(l), ntohs(l) 系列函数
表达形式与二进制数据用
inet_pton inet_ntop 函数
read、write 等系统调用可能因缓冲区满而出现返回字节与期望不同,
返回errno 错误 == EINTR 需要重新调用...