字节序,地址转换
来源:互联网 发布:三维平面布置图软件 编辑:程序博客网 时间:2024/06/05 15:50
字节序,地址转换
字节序:是指多字节数据在计算机内存中存储或者网络传输时各字节的存储顺序。两种格式:大端和小端。
小端:高地址存放高位数,低地址存放低位数
大端:高地址存放低位数,低地址存放高位数
验证主机的字节序
#include<stdio.h>
int main()
{
int m = 0x1234;
char*p = (char *)&m;
printf(“%0x\n”,*p);
return 0;
}
输出结果为12时 为大端
输出结果为34时 为小端
算术运算与内存操作运算:算术运算是不改变被运算数据的字节序
IP地址的字节序:IP地址的整数值,自IP地址生成的时刻起,就一定是网络字节序的(大端)
字节序转换函数:OS一般都提供htons、htonl、ntohs、ntohl这四个字节序操作函数
#include<netinet/in.h>
主机字节序转换成网络字节序函数:
u_longhtonl(u_long hostlongvalue); 32位
u_shorthtons(u_short hostshortvalue); 16位
网络字节序转换成主机字节序函数:
u_longntohl(u_long netlongvalue); 32位
u_shorthotns(u_short netshortvalue); 16位
地址转换函数
#include<arpa/inet.h>
将点分十进制数串转换成32位无符号整数
intinet_pton(int family, const char *strptr, void *addrptr);
family:协议族(AF_INET、AF_INET6、PF_PACKET等),常用AF_INET
strptr:点分十进制数串
addrptr:32位无符号整数的地址
成功返回1,失败返回其他
将32位无符号整数转换成点分十进制数串constchar *inet_ntop( int family, const void *addrptr, char*strptr, size_t len );
family:协议族(AF_INET、AF_INET6、PF_PACKET等),常用AF_INETaddrptr:32位无符号整数strptr:点分十进制数串len:strptr缓存区长度len的宏定义#defineINET_ADDRSTRLEN 16 // for ipv4#defineINET6_ADDRSTRLEN 46 // for ipv6成功返回首地址,否则为NULL
- 字节序,地址转换
- 网络字节序和地址转换
- linux字节序转换函数和地址转换函数
- linux字节序转换函数和地址转换函数
- mac地址转换为字节
- 字节序和IP地址转换函数的使用
- socket概述和字节序、地址转换函数(六)
- Linux 网络编程——网络字节序、地址转换
- Linux 网络编程——网络字节序、地址转换
- 【linux网络编程】网络字节序、地址转换
- socket编程 -- 网络字节序、IP地址转换、sockaddr数据结构
- linux IP地址转换及网络字节序
- Linux 网络编程——网络字节序、地址转换
- 套接字编程相关函数(套接字地址结构、字节序转换、IP地址转换)
- 字节序--为什么端口号和地址需要字节序转换而数据不需要
- 【UNIX网络编程(一)】套接字地址结构、网络字节序和地址转换函数
- 六、Linux网络编程-socket、套接字地址结构、地址转换、字节序、套接字类型
- 字节序转换、地址的数值和表达式间的转换
- HYSBZ 3224 Tyvj 1728 普通平衡树 treap
- 奇怪的国家
- 十二、网易2017<独立的小易>
- linux中交换内存空间(swap)的构建
- [CodeForces-758D] 区间dp
- 字节序,地址转换
- js十大排序(简单粗暴法)
- 【HPU-2016校赛-J】Judge
- NGUI 简单Font设置
- 区块链技术学习与分享(一)
- 链家编程题
- 数据库连接池的实现及原理
- json之查看过去的消息
- 数位dp模板