NTP时间服务器与客户端

简单的NTP服务器就是我发询问,你回复时间,服务端与客户端代码如下:

 1 from socket import *
 2 import time
 3 
 4 ip_duan = ('127.0.0.1', 8000)
 5 buff = 1024
 6 
 7 udp_server = socket(AF_INET, SOCK_DGRAM)  # SOCK_STREAM是流式的套接字,sock_dgram是数据报式
 8 udp_server.bind(ip_duan)
 9 # 因为没有链接,所以没有listen,当然也就没有accept,直接进入通信循环
10 
11 while True:
12     data, addr = udp_server.recvfrom(buff)      #recv是tcp,recvfrom是udp
13                                                # 返回的是一个元组,第一个是数据内容,第二个是客户端的IP+端口
14     print(data.decode('utf-8'))
15 
16     if not data:
17         fmt = '%Y-%m-%d %X'
18     else:
19         fmt = data.decode('utf')
20 
21     back_time = time.strftime(fmt)
22     udp_server.sendto(back_time.encode('utf-8'),addr)
View Code
 1 from socket import *
 2 
 3 ip_duan = ('127.0.0.1', 8000)
 4 buff = 1024
 5 
 6 udp_client = socket(AF_INET, SOCK_DGRAM)  # SOCK_STREAM是流式的套接字,sock_dgram是数据报式
 7 # udp_client.bind(ip_duan)
 8 # 因为没有链接,所以没有listen,当然也就没有accept,直接进入通信循环
 9 
10 while True:
11     msg = input('===>')
12     udp_client.sendto(msg.encode('utf-8'),ip_duan)     # 没有链接,所以每次发的时候都要指定ip+duankou
13 
14     data, addr = udp_client.recvfrom(buff)
15     print('时间服务器返回的时间',data.decode('utf-8'))
View Code
原文地址:https://www.cnblogs.com/maxiaonong/p/9499849.html