Linux 网络编程
IP地址转换函数(仅适用于 ipv4 )
inet_addr(char):将 十进制地址 转换为 网络字节序 的IPV4地址
inet_aton(char cp, struct in_addr* inp):和 inet_addr 一样,但是将结果存储于 inp。
char* inet_ntoa(struct in_addr in):将 网络字节序 转化成 点分十进制(但是有不可重入性)
适用于 4 和 6 的 IP 转换函数
inet_pton(int af, char* src, void* dst):将用字符串表示的点分十进制 IP 地址 src 转换成网络字节序,存储于 dst 中。
inet_ntop(int fa, void* src, char* dst, socklen_t cnt):将网络字节序转换成 点分十进制,cnt 表示目标存储单元的大小cnt 设定的宏:
INET_ADDRSTRLEN 16
INET6_ADDRSTRLEN 46
网络信息 API
struct servent* getservbyname(char* name, char* proto):
struct servent* getservbyport(int port, char* proto):
TCP缓冲区设置
正常情况下,接收缓冲区最小为 256 字节,发送缓冲区最小值为 2048 字节
可以通过 setsocketopt(sockFd, SOL_SOCKET, ..., val, size) 来设置相关参数SO_REUSEADDR: 地址可重用
SO_SNDBUF: 设置发送缓冲区大小
SO_RCVBUF: 设置接收缓冲区大小
SO_RCVLOWAT: 设置接收缓冲区最小可读长度(一般为1字节)
SO_SNDLOWAT: 设置发送缓冲区最小可发长度(一般为1字节)
同步与异步 IO
同步IO:用户代码自己执行I/O操作,通知IO就绪事件
异步IO:由内核来执行I/O操作,通知IO完成事件

浙公网安备 33010602011771号