zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    [CF786B] Legacy
    [CF833B] The Bakery
    [JSOI2008] 最小生成树计数
    [SDOI2010] 外星千足虫
    [POJ1830] 开关问题
    [Luogu1365] WJMZBMR打osu! / Easy
    [Noip2016] 换教室
    [NOI2002] 荒岛野人
    [计蒜之道复赛 2018] 贝壳找房计数比赛
    [SDOI2014] 旅行
  • 原文地址:https://www.cnblogs.com/maxiaonong/p/9499849.html
Copyright © 2011-2022 走看看