美文网首页
13.socket编程 - UDP

13.socket编程 - UDP

作者: 芝麻酱的简书 | 来源:发表于2018-08-23 10:48 被阅读8次
    服务端:
    1. ss = socket()创建一个服务器套接字
    2. ss.bind() 绑定服务器套接字
    inf_loop:                                # 服务器无限循环
          cs = ss.recvfrom() 或者ss.sendto()  # 与客户端对话
    ss.close()                               # 关闭服务器套接字
    
    客户端:
    1. cs = socket() 创建一个客户端套接字
    comm_loop:                                # 客户端通讯循环
          cs.recvfrom() 或者cs.sendto()  # 与客户端对话
    cs.close()                               # 关闭服务器套接字
    

    服务端代码实现:

    from socket import *
    
    ip_port = ('127.0.0.1', 8080)
    buffer_size = 1024
    
    udp_server = socket(AF_INET, SOCK_DGRAM) # 数据报
    udp_server.bind(ip_port)
    
    while True:
        data = udp_server.recvfrom(buffer_size)
        print(data)
    

    客户端代码实现:

    from socket import *
    
    ip_port = ('127.0.0.1', 8080)
    
    udp_client = socket(AF_INET, SOCK_DGRAM) # 数据报
    
    while True:
        udp_client.sendto('hello udp'.encode('utf-8'), ip_port)
    


    基于UDP实现NTP服务

    服务端:

    from socket import *
    import time
    ip_port=('127.0.0.1',8080)
    buffer_size=1024
    
    udp_server=socket(AF_INET,SOCK_DGRAM) #数据报
    udp_server.bind(ip_port)
    
    while True:
        data,addr=udp_server.recvfrom(buffer_size)
        print(data)
    
        if not data:
            fmt='%Y-%m-%d %X'
        else:
            fmt=data.decode('utf-8')
        back_time=time.strftime(fmt)
    
        udp_server.sendto(back_time.encode('utf-8'),addr)
    
    

    客户端:

    from socket import *
    
    ip_port = ('127.0.0.1', 8080)
    buf_size=1024
    udp_client = socket(AF_INET, SOCK_DGRAM) # 数据报
    
    while True:
    
        msg = input("请输入发送内容")
        udp_client.sendto(msg.encode('utf-8'), ip_port)
    
        data, addr = udp_client.recvfrom(buf_size)
        print("ntp服务器的标准时间是", data.decode("utf-8"))
    
    

    相关文章

      网友评论

          本文标题:13.socket编程 - UDP

          本文链接:https://www.haomeiwen.com/subject/etspiftx.html