Python的socket库提供了将数据在网络字节序和主机字节序之间相互转换的函数。有什么作用呢?

在编写低层网络应用时,或许需要处理通过电缆在两台设备之间传送的低层数据。在这种操作中,需要把主机操作系统发出的数据转换成网络格式,或者做逆向转换,因为这两种数据的表示方式不一样。

技术点解析:

1、定义convert_integer()函数,注意函数格式(以后都会提醒这个,要养成习惯)

2、socket库中的类函数

ntohl() 把网络字节序转换成了长×××主机字节序

htonl() 把长×××主机字节序转换成了网络字节序

函数名中的n表示网络; h表示主机; l表示长×××即32位; s表示短×××即16位。

3、测试为整数型转换函数

4、print打印输入类型对应多列,是一一相互对应的

代码如下:

import  socket
def convert_integer():data=1234567890# 16-bitprint("Original: %s => Short host byte order: %s, Network byte order: %s" %(data,socket.ntohs(data),socket.htons(data)))# 32-bitprint("Original: %s => Long host byte order: %s, Network byte order: %s" %(data,socket.ntohl(data),socket.htonl(data)))

运行结果截图:

转载于:https://blog.51cto.com/laobaiv1/1956663

python通过ntohl和htonl等函数实现主机字节序和网络字节序相互转换相关推荐

  1. 主机字节序与网络字节序的转换函数:htonl、ntohl、htons、ntohs

    Part 1: htons函数具体解释      在Linux和Windows网络编程时需要用到htons和htonl函数,用来将主机字节顺序转换为网络字节顺序. 在Intel机器下,执行以下程序 i ...

  2. 主机字节序与网络字节序的转换函数:htonl、ntohl、htons、ntohs【转】

    (转自:https://blog.csdn.net/kulala082/article/details/53431473) Part 1: htons函数具体解释 在Linux和Windows网络编程 ...

  3. IP地址本地字节序与网络字节序的转换函数

    参考该文 IP地址本地字节序的转换函数有以下几种: 1.uint32_t htonl(uint32_t hostlong);  //一般不用来转换ip地址 这个函数是int转int型,而我们习惯用的i ...

  4. ntohs, ntohl, htons,htonl字节序转换函数

    ntohs() 简述:将一个无符号短整型数从网络字节顺序转换为主机字节顺序.(16位). #include <netinet/in.h> uint16_t ntohs(uint16_t n ...

  5. linux c ntohs, ntohl, htons,htonl 网络字节序转换函数

    ntohs() 简述:将一个无符号短整型数从网络字节顺序转换为主机字节顺序.(16位). #include <netinet/in.h> uint16_t ntohs(uint16_t n ...

  6. socket编程为什么需要htons(), ntohl(), ntohs(),htons() 函数

    在C/C++写网络程序的时候,往往会遇到字节的网络顺序和主机顺序的问题.这是就可能用到htons(), ntohl(), ntohs(),htons()这4个函数. 网络字节顺序与本地字节顺序之间的转 ...

  7. linux函数库之htons(), ntohl(), ntohs(),htons() 函数

    字节序分为大端字节序和小端字节序: 大端字节序: 是指一个整数的高位字节(32-31bit)存储在内存的低地址处,低位字节(0-7bit)存储在内存的高地址处. 小端字节序: 是指一个整数的高位字节( ...

  8. 为什么需要htons(), ntohl(), ntohs(),htons() 函数

    为什么需要htons(), ntohl(), ntohs(),htons() 函数: 在C/C++写网络程序的时候,往往会遇到字节的网络顺序和主机顺序的问题.这是就可能用到htons(), ntohl ...

  9. ntohs, ntohl, htons,htonl的比较和详解

    在C/C++写网络程序的时候,往往会遇到字节的网络顺序和主机顺序的问题. 这时就可能用到htons(), ntohl(), ntohs(),htons()这4个网络字节顺序与本地字节顺序之间的转换函数 ...

最新文章

  1. python xmlrpc_Python xmlrpc用法
  2. 一加代言人小罗伯特唐尼竟用华为P30 Pro发微博,当然是笑着原谅他
  3. 前沿 | IBM语音识别已接近人类水平
  4. laravel5.5路由使用name的好处
  5. 「leetcode」941. 有效的山脉数组:【双指针】详解
  6. 《C#高级编程》笔记系列--点滴记录(持续更新中……)
  7. 【单目标优化求解】基于matlab粒子群混沌混合蝴蝶优化算法求解最优目标问题(HPSOBOA)【含Matlab源码 1538期】
  8. mac 中的 zip 和 unzip 命令
  9. BDTC 2017 | 聚焦AI,十位资深专家分享金融大数据最佳实践
  10. 关于MAC下的SSH工具的推荐及SSH如何连接本地的小教程
  11. 详解SQL中几种常用的表连接方式!
  12. nmap -oG -iL 写入文件和读取文件之[网鼎杯 2020 朱雀组]Nmap
  13. 【论文阅读】Text Gestalt: Stroke-Aware Scene Text Image Super-Resolution
  14. C++ list及数组中数字相连输出问题
  15. LTE中语音业务时怎样实现?
  16. Looper.prepare()方法
  17. HDU5420 : Victor and Proposition
  18. vb.net程序可以在触摸屏上运行么_海泰克触摸屏维修故障排除维修技巧
  19. p50搭载鸿蒙os有什么不同,后置镜头变液态双摄?华为P50Pro再曝光,搭载鸿蒙OS传感器变1寸...
  20. MES人事管理系统源码

热门文章

  1. excel清空sheet内容 poi_Excel隐藏了一个sheet表,java poi中是可以读出来的,现在我不想读取隐藏的sheet表。...
  2. 删除苹果自带软件后果_使用adb命令删除手机软件(包括系统自带)
  3. Opencv 中 Mat中元素的值读取方法总结
  4. 剑指offer面试题[54]-表示数值的字符串
  5. java存储整数,用于存储整数数值的是 JAVA四种整数数据类型的取值范围分别是多少...
  6. ubuntu命令行语法_Linux中重定向命令行的总结(ubuntu学习第三讲)
  7. cd如何省略空格 linux_在 Linux 上调整命令历史 | Linux 中国
  8. 移动端媒体尺寸_网络推广外包浅析提升移动端网站建设效率有哪些网络推广外包技巧...
  9. mysql存储java对象_Mysql存储java对象 | 学步园
  10. orb-slam a versatile and accurate monocular slam system