字节序

在这里插入图片描述

一、地址转换API

//把字符串形式“127.0.0.1”转化为网络能识别的格式
int inet_aton(const char* straddr,struct in_addr *addrp);
eg:
inet_aton(“192.168.124.109”,&c_addr.sin_addr);

//把网络格式的IP地址转化为字符串形式
char* inet_ntoa(struct in_addr sin_addr);
eg:
inet_ntoa(caddr.sin_addr);

二、字节序转换API

#include<netinet/in.h>
extern uint32_t ntohl (uint32_t __netlong) //返回主机字节序uint32
extern uint16_t ntohs (uint16_t __netshort)//返回主机字节序uint16
extern uint32_t htonl (uint32_t __hostlong)//返回网络字节序的值
extern uint16_t htons (uint16_t __hostshort)//返回网络字节序的值

h 代表 host,n 代表 net,s 代表 short(两个字节16位)l 代表 long (4个字节 32位)
有时可以用 INADDR_ANY、INADDR_ANY 指定地址,让操作系统自己获取

注:

网络字节序都是BIG-ENDIAN

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐