使用python 实现icmp测试主机存活性
2017-05-12 16:21
225 查看
代码: 输出:Original values: (1, 'abc', 2.7)Format string : I3sfUses : 12 bytesPacked Value : 0100000061626300cdcc2c40Unpacked Type : <type 'tuple'> Value: (1, 'abc', 2.700000047683716)代码中,首先定义了一个元组数据,包含int、string、float三种数据类型,然后定义了struct对象,并制定了format‘I3sf’,I表示int,3s表示三个字符长度的字符串,f 表示float。最后通过struct的pack和unpack进行打包和解包。通过输出结果可以发现,value被pack之后,转化为了一段二进制字节串,而unpack可以把该字节串再转换回一个元组,但是值得注意的是对于float的精度发生了改变,这是由一些比如操作系统等客观因素所决定的。打包之后的数据所占用的字节数与C语言中的struct十分相似。
select 模块:Python中的select模块专注于I/O多路复用,提供了select poll epoll三个方法(其中后两个在Linux中可用,windows仅支持select),另外也提供了kqueue方法(freeBSD系统)
select方法:
进程指定内核监听哪些文件描述符(最多监听1024个fd)的哪些事件,当没有文件描述符事件发生时,进程被阻塞;当一个或者多个文件描述符事件发生时,进程被唤醒。当我们调用select()时: 1 上下文切换转换为内核态 2 将fd从用户空间复制到内核空间 3 内核遍历所有fd,查看其对应事件是否发生 4 如果没发生,将进程阻塞,当设备驱动产生中断或者timeout时间后,将进程唤醒,再次进行遍历 5 返回遍历后的fd 6 将fd从内核空间复制到用户空间fd:file descriptor 文件描述符fd_r_list, fd_w_list, fd_e_list = .秒,之后返回三个空列表,如果监听的句柄有变化,则直接执行。
相关文章推荐
- Python之使用unittest框架和HTMLTestRunner.py文件实现多个测试用例执行与测试报告生成
- python3 使用 fabric3 模块实现密钥登录远程主机
- Selenium - Python下使用pageobject实现自动化测试
- python+requests实现接口测试 - get与post请求使用( params
- 使用python实现测试工具(一)
- python+requests实现接口测试 - get与post请求使用
- 如何使用Python和Nose实现自动化测试?
- Python 使用paramiko实现远程登录Linux主机并执行命令和操作
- Python+Selenium使用Page Object实现页面自动化测试
- 如何使用 Python 实现自动化测试
- 使用Python实现简单主机批量管理工具
- 使用 Python 在 Linux 上实现一键回归测试
- Python单元测试_使用装饰器实现测试跳过和预期故障的方法
- 纯python实现的web: tornado性能测试以及实际使用解析
- 使用python实现一个通用协议测试工具
- python+requests实现接口测试 - get与post请求使用
- 本周目标--用python实现系统监控测试
- python cgi ajax - 使用CGIHTTPServer实现一个ajax程序
- 使用SWIG实现C++导出python接口的配置
- ubuntu linux主机中使用Virtualbox安装虚拟机,让宿主机和虚拟机之间实现数据共享