06-udp网络程序-发送接收数据

目标

  • 知道使用 socket 的 recvfrom 方法能够接收数据

  • 知道使用 decode 方法能够对接收到的数据解码

1.功能目标

image-20180812212841592

2. 实现效果

udp-recvfrom

3. 核心方法

  • socket.recvfrom(缓冲区大小)—— 接受UDP套接字的数据。
socket.recvfrom(1024) 使用udp方式接收数据,每次接收1024个字节
  • decode()—— 解码,把二进制数据解码为 字符串 类型
str = data.decode() 把data 解码为字符串并且保存到 str变量中

4. 核心代码实现

#coding=utf-8

from socket import *

# 1. 创建udp套接字
udp_socket = socket(AF_INET, SOCK_DGRAM)

# 2. 准备接收方的地址
dest_addr = ('192.168.236.129', 8080)

# 3. 从键盘获取数据
send_data = input("请输入要发送的数据:")

# 4. 发送数据到指定的电脑上
udp_socket.sendto(send_data.encode('utf-8'), dest_addr)

# 5. 等待接收对方发送的数据
recv_data = udp_socket.recvfrom(1024)  # 1024表示本次接收的最大字节数

# 6. 显示对方发送的数据
# 接收到的数据recv_data是一个元组
# 第1个元素是对方发送的数据
# 第2个元素是对方的ip和端口
print(recv_data[0].decode('gbk'))
print(recv_data[1])

# 7. 关闭套接字
udp_socket.close()

python脚本:

image-20180607224900131

网络调试助手截图:

image-20180607225014578

image-20180607220435025