如果不清楚关于字节序方面的知识,可以百度下
1.python写法
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()
2.php写法
<?php
function ntohl($str)
{
$res = unpack('I', pack('N', $str));
return $res[1];
}
function htonl($str)
{
$res = unpack('N', pack('I', $str));
return $res[1];
}
function ntohs($str)
{
$res = unpack('S', pack('n', $str));
return $res[1];
}
function htons($str)
{
$res = unpack('n', pack('S', $str));
return $res[1];
}
function convert_integer(){
$data = 1234;
printf("Original: %s => Long host byte order: %s, Network byte order: %s\n", $data, ntohl($data), htonl($data));
printf("Original: %s => Short host byte order: %s, Network byte order: %s\n", $data, ntohs($data), htons($data));
}
convert_integer();
很悲催的是php没有ntohl,htonl,ntohs,htons这几个函数可用,代码量直接被完爆~虽然我也是一个phper,但不得不承认php网络方面的能力还是不如python的~当然php优势不在这~
转载请标注文章地址:http://blog.csdn.net/ddjohn/article/details/49931395