主机字节序与网络字节序的转换:ntohl()与htonl()
2015-04-24 11:47
981 查看
#!/usr/bin/env python #coding=utf-8 import socket def convert_integer(): data=1234 #32-bit print "Original: %s => Long host byte order: %s, Network byte order: %s"\ %(data,socket.ntohl(data),socket.htonl(data)) #16-bit print "Original: %s => Short host byte order: %s, Network byte order: %s"\ %(data,socket.ntohs(data),socket.htons(data)) if __name__=='__main__': convert_integer()
运行结果:
32位:
1234D=0xD2040000
windows(小端法:低位字节在低地址)下:
addr addr+1 addr+2 addr+3
0x D2 04 00 00
ntoh():假定给定数据是网络字节序(大端法:低位字节在高地址):
在windows内在中存储形式为:
addr addr+1 addr+2 addr+3
0x D2 04 00 00(当作是大端法)
转换后: 00 00 04 D2
在windows(小端法)下读取出来:
0xD2040000=3523477504
hton():假定给定数据是主机字节序(windows下为小端法):
在windows内在中存储形式为:
addr addr+1 addr+2 addr+3
0x D2 04 00 00(当作是小端法)
转换后: 00 00 04 D2
在windows(小端法)下读取出来:
0xD2040000=3523477504
同理可分析16位下的情况。
相关文章推荐
- python通过ntohl和htonl等函数实现主机字节序和网络字节序相互转换
- 网络字节序与主机字节序的转换(htonl,htons,inet_addr,ntohl,ntohs,inet_ntoa)
- Unix网络编程卷一: 主机字节序和网络字节序互相转换
- 网络字节序与主机字节序的转换
- API SOCKET基础(三)网络字节序与主机字节序的转换
- 64位网络字节序与主机字节序转换 ;32位网络字节序与主机字节序转换;16位网络字节序与主机字节序转换
- 主机字节序与网络字节序的转换过程
- 网络字节序与主机字节序的转换
- 网络字节顺序和主机字节顺序的转换(htons ntohs htonl ntohl)
- 网络字节序与主机字节序的转换
- 两个例子理解主机字节序和网络字节序,不同平台字节序转换
- 网络字节序与主机字节序的转换[转]
- 关于网络字节序和主机字节序的转换
- Python Network Programming(4)---主机字节序与网络字节序之间的相互转换
- 网络字节序与主机字节序的转换
- 网络字节序与主机字节序的转换
- c# 主机和网络字节序的转换 关于网络字节序和主机字节序的转换
- 网络字节序与主机字节序的转换
- 网络字节顺序和主机字节顺序的转换(htons ntohs htonl ntohl)
- 关于网络字节序和主机字节序的转换