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()

 

posted @ 2020-03-16 21:09  天象独行  阅读(215)  评论(0编辑  收藏  举报