地址族与数据序列

 

struct sockaddr_in
{
    sa_family_t sin_family; //地址族
    uint16_t sin_port;      //16位端口号
    struct in_addr sin_addr;//32位IP地址
    char zero[8];           //不使用
}

struct in_addr
{
    in_addr_t s_addr;   //32位IP地址
}

struct sockaddr
{
    sa_family_t sin_family;
    char sa_data[14];
}

 unsigned short htons(unsigned short); //主机字节序->网络字节序

unsigned short ntohs(unsigned short); //网络字节序列->主机字节序列

unsigned long htonl(unsigned long);

unsigned long ntohl(unsigned long);

 htons()    host to network short
 
 htonl()     host to network long
 
  ntohs()    network to host short
 
  ntohl()    network to host long

#include<arpa/inet.h>

in_addr_t inet_addr(const char* string);

//成功时返回32位大端序列整型数值,失败时返回INADDR_NONE

 

int inet_aton(const char* string, struct in_addr* addr);

 

#include<sys/socket.h>

int bind(int sockfd, struct sockaddr * myaddr,socklen_t addrlen);

//成功时返回一,失败时返回0

string 含有需转换的IP地址信息的字符串地址值

addr: 将保存转换结果的in_addr结构体变量的地址值

// 成功时返回true,失败时返回false

inet_addr(), inet_aton()和inet_ntoa()函数

inet_addr()函数

功能:inet_addr()函数用于将点分十进制IP地址转换成网络字节序IP地址;
原型in_addr_t inet_addr(const char *cp);
返回值:如果正确执行将返回一个无符号长整数型数。如果传入的字符串不是一个合法的IP地址,将返回INADDR_NONE;
头文件:arpa/inet.h (Linux)

inet_aton()函数

功能:inet_aton()函数用于将点分十进制IP地址转换成网络字节序IP地址;
原型int inet_aton(const char *string, struct in_addr *addr);
返回值:如果这个函数成功,函数的返回值非零,如果输入地址不正确则会返回零;
头文件:sys/socket.h (Linux)

inet_ntoa()函数

功能inet_ntoa()函数用于网络字节序IP转化点分十进制IP;
原型char *inet_ntoa (struct in_addr);
返回值:若无错误发生,inet_ntoa()返回一个字符指针。否则的话,返回NULL。其中的数据应在下一个WINDOWS套接口调用前复制出来;
头文件:arpa/inet.h (Linux)

转载:http://haoyuanliu.github.io/2017/01/15/%E5%9C%B0%E5%9D%80%E8%BD%AC%E6%8D%A2%E5%87%BD%E6%95%B0inet-addr-inet-aton-inet-ntoa-%E5%92%8Cinet-ntop-inet-pton/

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值