zoukankan      html  css  js  c++  java
  • 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()
  • 相关阅读:
    ThinkPHP-5.0.23新的RCE漏洞测试和POC
    利用DNS日志进行MySQL盲注
    Prometheus自动发现
    relabel_config
    Maven安装
    Redis安装
    Node.js安装
    MySQL-5.7安装
    设计模式【1】------>单例模式
    Java设计模式概念以及六大设计原则
  • 原文地址:https://www.cnblogs.com/aaron456-rgv/p/12506772.html
Copyright © 2011-2022 走看看