网络校时 附Python源码及几个标准时间服务器
网络时间服务器 一般都遵循 RFC868 协议标准.
按该标准 附下面 Python 源码.
# -*- coding: utf-8 -*-
import socket,sys,time
#时间服务器
host = "stdtime.gov.hk"
#端口
port = 37
#时区
curtz = 8
#连接服务器,并接收返回
try:
host = socket.gethostbyname(host)
s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
s.settimeout(2)
s.sendto("",(host,port))
buf = s.recvfrom(10)[0]
except socket.timeout,ex:
print 'socket error! timeout'
sys.exit(1)
except socket.gaierror,ex:
print 'socket error! gaierror'
sys.exit(1)
if len(buf) < 4:
print 'read data error'
sys.exit(1)
#计算返回的自 1900-1-1 00:00:00 的秒数
secs = ord(buf[0])*pow(256,3)+ord(buf[1])*pow(256,2)+ord(buf[2])*pow(256,1)+ord(buf[3])
ts = time.gmtime(secs - 2208988800+curtz*3600)
#time 是从1970-1-1 00:00:00 算起的 1970-1-1 00:00:00 是秒数是 2208988800s
print time.strftime("%Y-%m-%d %H:%I:%S", ts)
print time.strftime("%Y-%m-%d %H:%I:%S")
#附 Time Server:
'''
clock.psu.edu
ntp0.cornell.edu
salmon.maths.tcd.ie
stdtime.gov.hk
'''
转载请注明出处 http://blog.csdn.net/mrshelly 或 http://www.mrshelly.com
相关文档:
一颗语法糖——装饰器
理论不去管,只管能办事:
1. 我要让一个函数在执行的时候,去做一些事情,比如,我要看看这些函数是不是有docstring,将这个功能拿出来,定义一个装饰器:
def showmedoc(func):
if func.__doc__:
& ......
vim支持大部分文件格式的语法高亮,而且可以自定义。不过缺省的python语法高亮感觉太少,修改一下。
1.修改语法高亮文件
vim/vim72/syntax/python.vim
将" let python_highlight_all = 1
前面的引号去掉,可支持内置函数,数字,空格,异常的语法高亮。
2. 将self加进
syn keyword pythonBuiltin&n ......
下载了很多压缩文件,就写了一个脚本
在Python中使用winrar命令,所以一般压缩文件都支持
有些压缩文件Python中还没有相应的库
你得先把winrar添加到path环境变量中
把代码保存为rar.py
在dos下使用,如:rar.py "D:\A B\C" mkdir
#rar.py
#decompress with winrar
#arguments :filename directory opt
# op ......
Python的创始人为Guido van
Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为 ABC
语言的一种继承。之所以选中 Python(大蟒蛇的意思)作为程序的名字,是因为他是一个Monty Python的飞行马戏团的爱好者。
ABC是由Guido参加设计的一种教学语言。就Guido本人看 ......