linux网络编程之用一张图片说明函数inet_ntop、inet_pton、inet_addr、inet_ntoa 、inet_aton函数之间的关系
来源:互联网 发布:如何从github下载源码 编辑:程序博客网 时间:2024/05/17 08:15
1、inet_ntop、inet_pton、inet_addr、inet_ntoa 、inet_aton函数之间的关系
2、inet_ntop、inet_pton函数的源代码
1、inet_pton函数源码
int inet_pton(int family, const char *strptr, void *addrptr){ if (family == AF_INET) { struct in_addr in_val;if (inet_aton(strptr, &in_val)) { memcpy(addrptr, &in_val, sizeof(in_val)); return (1);}}errno = EAFNOSUPPOPT;return (-1);}
2、inet_ntop函数源码
const char *inet_ntop(int family, const void *addrptr, char *strptr, size_t len){const u_char *p = (const u_char*)addrptr;if (family == AF_INET) {char temp[INET_ADDRSTRLEN];snprintf(temp, sizeof(temp), "%d.%d.%d.%d", p[0], p[1], p[2], p[3]);if (strlen(temp) >= len) { errno = ENOSPC; rturn (NULL);}strcpy(strptr, temp);return (strptr);}errno = EAFNOSUPPOPT;return (NULL);}
3、如果用inet_ntop、inet_pton替代inet_ntoa、和inet_addr函数
inet_pton(AF_INET, cp, &foo.sin_addr)代替下面函数foo.sin_addr.s_addr = inet_addr(cp);
char str[INET_ADDRSTRLEN];ptr = inet_ntop(AF_INET, &foo.sin_addr, str, sizeof(str));代替下面函数ptr = inet_ntoa(foo.sin_addr);
注意inet_ntoa是静态函数,如果你打印2次,结果会一样,之前我们打印日志的时候,发现源地址和目标地址是一样的,这不日了狗吗?肯定不一样,所以切记,是个静态函数。
0 0
- linux网络编程之用一张图片说明函数inet_ntop、inet_pton、inet_addr、inet_ntoa 、inet_aton函数之间的关系
- 关于Linux的inet_addr inet_aton inet_ntoa 函数 和inet_pton inet_ntop函数
- 地址转换函数inet_aton、 inet_ntoa、 inet_addr和inet_pton 、inet_ntop
- inet_addr, inet_aton, inet_ntoa, inet_pton, inet_ntop函数简析
- 网络字节转换inet_aton & inet_ntoa & inet_addr和inet_pton & inet_ntop
- 网络字节转换inet_aton & inet_ntoa & inet_addr和inet_pton & inet_ntop
- 网络字节转换inet_aton & inet_ntoa & inet_addr和inet_pton & inet_ntop
- 网络字节转换inet_aton & inet_ntoa & inet_addr和inet_pton & inet_ntop
- 网络字节转换inet_aton & inet_ntoa & inet_addr和inet_pton & inet_ntop
- 网络字节转换inet_aton & inet_ntoa & inet_addr和inet_pton & inet_ntop
- 网络字节转换inet_aton & inet_ntoa & inet_addr和inet_pton & inet_ntop
- 网络字节转换inet_aton & inet_ntoa & inet_addr和inet_pton & inet_ntop
- 网络字节转换inet_aton & inet_ntoa & inet_addr和inet_pton & inet_ntop
- IP地址转换函数——inet_ntop(),inet_pton(),inet_addr(),inet_aton(),inet_ntoa()
- Linux网络编程IPv4和IPv6的inet_addr、inet_aton、inet_pton等函数小结
- Linux网络编程IPv4和IPv6的inet_addr、inet_aton、inet_pton等函数小结
- Linux网络编程IPv4和IPv6的inet_addr、inet_aton、inet_pton函数
- Linux网络编程IPv4和IPv6的inet_addr、inet_aton、inet_pton等函数小结
- APP开发问题汇总
- 有些事情想灵光一样,如果不当时就记住, 过一会儿就想不起来。
- mybaits的xxMapper.xml文件中大于号和小于号处理
- 权限系统表设计探讨
- 杂记
- linux网络编程之用一张图片说明函数inet_ntop、inet_pton、inet_addr、inet_ntoa 、inet_aton函数之间的关系
- Android下XUtils用法
- Jsoup生成Document的两种方法
- Ubuntu下安装oracle客户端
- Hibernate5
- 嵌入式linux开发 x6818挂载nfs文件系统
- 372. Super Pow
- shell 使用数组作为函数参数的方法
- 在java的程序里date类型怎么比较大小呀?