UDP服务端代码示例:
from socket import *
#1.创建数据报套接字
sockfd = socket(AF_INET, SOCK_DGRAM)
#2.绑定服务端地
sockfd.bind(("0.0.0.0", 8888))
while True:
#3.接收消息 返回值:data 接收到的内容 addr 消息发送方的地址
#recvfrom每次接收一个报文,如果没有接收完全则丢弃没有收到的内容
data, addr = sockfd.recvfrom(5)
print("Receive from %s:%s" % (data.decode(),addr))
#4.发送消息 参数: data 要发送的内容(bytes) addr 目标地址
# 返回:发送字节数
data = input("给客户端发送:")
sockfd.sendto(data.encode(),addr)
#5.关闭套接字
sockfd.close()
----------------------------------------------------------------------
UDP客户端代码示例:
from socket import *
import sys
if len(sys.argv) < 3:
print('''
argv is error!
argv < 3
''')
HOST = sys.argv[1] #直接从命令端输入,返回一个列表
PORT = int(sys.argv[2])
ADDR = (HOST,PORT)
#1. 创建套接字
sockfd = socket(AF_INET, SOCK_DGRAM)
while True:
data = input("消息:")
if not data: #如果数据为空字符串的话,就跳出循环
break
sockfd.sendto(data.encode(), ADDR)
data,addr = sockfd.recvfrom(1024)
print("从服务收到",data.decode())
sockfd.close()