• Python3---UDP服务器Studying


    UDP服务器:

    #! /usr/bin/env python
    from socket import *
    from time import ctime
    
    '''
    作用:UDP服务器伪代码
    ss = socket() 创建服务器套接字
    ss.bind() 绑定服务器套接字
    inf_loop: 服务器无限循环
        cs = ss.recvfrom()/ss.sendto() 关闭(接收/发送)
    ss.close() 关闭服务器套接字
    '''
    HOST = ''
    PORT = 21567
    BUFSIZ = 1024
    ADDR = (HOST,PORT)
    
    udpSerSock = socket(AF_INET,SOCK_DGRAM)
    udpSerSock.bind(ADDR)
    
    '''
    recv()返回的是接收到的数据, recvfrom返回的是(数据,客户端地址),可以用来接收对端的地址信息,这个对于udp这种无连接的,可以很方便地进行回复。
    '''
    while True:
        print("waiting for message...")
        data,addr = udpSerSock.recvfrom(BUFSIZ)
        udpSerSock.sendto(ctime().encode(),addr)
        print("...received from and returned to:",addr)
    
    udpSerSock.close()

    UDP客户端:

    #!/usr/bin/env python
    
    from socket import *
    
    '''
    作用:UDP客户端
    cs = socket() 创建客户端套接字
    comm_loop: 通信循环
        cs.sendto()/cs.recvfrom() 对话(发送/接收)
    cs.close() 关闭客户端套接字
    '''
    
    HOST = 'localhost'
    PORT = 21567
    BUFSIZ = 1024
    ADDR = (HOST,PORT)
    
    udpCliSock = socket(AF_INET,SOCK_DGRAM)
    
    while True:
        data = input('> ')
        data = data.encode()
        if not data:
            break
        udpCliSock.sendto(data,ADDR)
        data, ADDR = udpCliSock.recvfrom(BUFSIZ)
        if not data:
            break
        print(data)
    
    udpCliSock.close()
  • 相关阅读:
    P4559 [JSOI2018]列队
    2019.2.14 考试T3 交互题
    2019.2.14 考试T1 FFT
    P3240 [HNOI2015]实验比较 树形DP
    bzoj 3514: Codechef MARCH14 GERALD07加强版 LCT+主席树
    P4172 [WC2006]水管局长 LCT维护最小生成树
    P4177 [CEOI2008]order 最小割
    CF1073G Yet Another LCP Problem SA+权值线段树
    CF1110D Jongmah
    2019.2.10考试T2, 多项式求exp+生成函数
  • 原文地址:https://www.cnblogs.com/aaron456-rgv/p/12506772.html
Copyright © 2020-2023  润新知