python socket编程实现NTP客户端
本文的代码来源于《Python Network Programming Cookbook》中的1_12示例代码,书中代码是2.7版本的,我修改后在3.8环境下测试ok。#!/usr/bin/env python# Python Network Programming Cookbook -- Chapter -1# This program is optimized for Python 3.8 I
·
本文的代码来源于《Python Network Programming Cookbook》中的1_12示例代码,书中代码是2.7版本的,我修改后在3.8环境下测试ok。
#!/usr/bin/env python
# Python Network Programming Cookbook -- Chapter -1
# This program is optimized for Python 3.8 It may run on any
# other Python version with/without modifications.
# 编写一个sntp客户端
import socket
import struct
import time
NTP_SERVER = "0.uk.pool.ntp.org"
TIME1970 = 2208988800
def sntp_client():
client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
data = ("\x1b" + 47 * "\0").encode()
client.sendto(data, (NTP_SERVER, 123))
data, address = client.recvfrom(1024)
if data:
print("Response received from:", address)
t = struct.unpack('!12I', data)[10]
t -= TIME1970
print('\tTime=%s' % time.ctime(t))
if __name__ == '__main__':
sntp_client()
从socket.SOCK_DGRAM 可以看到 ntp(网路时间协议)是UDP的协议
且NTP协议的端口号为123
更多推荐
已为社区贡献1条内容
所有评论(0)