(3)网络字节序二进制和ASC字符串转换

#include<arpa/inet.h>
int inet_aton(const char *strptr, struct in_addr *addrptr );
//返回 1——串有效。0——串错误
将strptr指向的C字符串转换称32位网络字节序二进制值;并通过指针addrptr存储
in_addr_t inet_addr( const char *strptr );
若成功。返回32位2进制网络字节序。有错返回。INADDR_NONE(一般为32位都是1的值,这就意味点分十进制数串255.255.255.255不能有这个函数处理)
char *inet_ntoa( struct in_addr inaddr );
返回指向点分十进制数串的指针
以上3个函数只能处理IPV4
以下2个函数IPV4和IPV6都能够处理
#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——出错。
以上2个函数的参数family既可以是AF_INET.也可以是AF_INET6.如果以不被支持的地址族作为family参数。两个函数返回错。并将
errno置为EAFNOSUPPORT.
len是目标大小。以免溢出。
<netinet/in.h>
中定义:#define INET_ADDRSTRLEN 16;    //for ipv4
#define INET6_ADDRSTRLEN 46           //for ipv6 
如果len太小。返回空指针。置errno为ENOSPC.
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值