编写低层网络应用时,或许需要处理通过电缆在两台设备之间传送的低层数据,这种操作中,需要把主机操作系统发出的数据转换成网络格式,或者做逆向转换,因为这两种数据的表示方式不一样。
字节序相关见unp。
Python的socket提供数据在网络字节序与主机字节序之间相互转换的函数:htonl,ntohl;htons,ntohs。
__author__ = 'liyuan35023'
#!/home/mimiasd/PycharmProjects/workspace python27
import socket
def convert_integer():
data = 1234
# 32bits
print "original: %s => Long host: %s, Long network: %s"\
% (data, socket.ntohl(data), socket.htonl(data))
# 16bits
print "original: %s => Short host: %s, Short network: %s"\
% (data, socket.ntohs(data), socket.htons(data))
if __name__ == "__main__":
convert_integer()