很多程序要求设备的时间精准,例如Unix系统中的make命令。设备上的时间可能不够准确,需要和网络中的时间服务器同步。 1.12.1 准备工作 你可以编写一个Python客户端,让设备上的时间和某个网络时间服务器同步。要完成这一操作,需要使用ntplib,通过“网络时间协议”(Network Time Protocol,简称NTP)处理客户端和服务器之间的通信。如果你的设备中没有安装ntplib,可以使用pip或easy_install从PyPI中安装,命令如下: $pip install ntplib 1.12.2 实战演练 我们先要创建一个NTPClient实例,然后在这个实例上调用request()方法,把NTP服务器的地址传入方法。 代码清单1-11展示了如何从网络时间服务器上获取当前时间并打印出来,如下所示: #!/usr/bin/env python # Python Network Programming Cookbook -- Chapter - 1 # This program is optimized for Python 2.7. It may run on any # other Python version with/without modifications. import ntplib from time import ctime def print_time(): ntp_client = ntplib.NTPClient() response = ntp_client.request('pool.ntp.org') print ctime(response.tx_time) if __name__ == '__main__': print_time() 在我的设备上,运行这个攻略后得到的输出如下: $ python 1_11_print_machine_time.py Thu Mar 5 14:02:58 2012 1.12.3 原理分析 在这个攻略中,我们编写了一个NTP客户端,向NTP服务器pool.ntp.org发起了一个NTP请求。响应使用ctime()函数打印出来。
Python网络编程攻略——1.12 从网络时间服务器获取并打印当前时间
书名: Python网络编程攻略
作者: 萨卡尔
出版社: 人民邮电出版社
译者: 安道
出版年: 2014-12-1
页数: 170
定价: 45.00元
装帧: 平装
丛书: 图灵程序设计丛书
ISBN: 9787115372697