目录
网络套接字
socket,一个文件描述符指向一个套接字,该套接字内部由内核借助两个缓冲区实现。
在通信过程中, 套接字一定是成对出现的。
网络字节序
小端法:PC本地存储。高位存高地址。低位存低地址。
大端法:网络存储。高位存低地址。低位存高地址。
网络字节序和主机字节序的转换
#include <arpa/inet.h>
uint32_t htonl(uint32_t hostlong); //本地IP转网络IP
uint16_t htons(uint16_t hostshort); //本地端口转网络端口
uint32_t ntohl(uint32_t netlong); //网络IP转本地IP
uint16_t ntohs(uint16_t netshort); //网络端口转本地端口
man htonl
IP地址转换函数
inet_pton
点分式的十进制本地IP地址转换为网络字节序的IP地址。
man inet_pton
参数af
AF_INET:IPv4
AF_INET6:IPv6
参数src
传入参数,点分十进制的IP地址。
参数dst
传出参数,转换后的网络字节序的IP地址。
返回值
成功:1
异常:0,参数src不是有效的IP地址。
失败:-1
inet_ntop
网络字节序的IP地址转换为点分式的十进制本地IP地址。
man inet_ntop
参数af
AF_INET:IPv4
AF_INET6:IPv6
参数src
网络字节序的IP地址。
参数dst
本地字节序IP地址,字符串类型。
参数size
参数dst的大小。
返回值
成功:返回dst。
失败:NULL。