这里写自定义目录标题
python 学习之旅-udp简单实现
什么是udp
Internet 协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP,User Datagram Protocol)。UDP 为应用程序提供了一种***无需建立连接***就可以发送封装的 IP 数据报的方法。
udp网络程序-发送、接收数据
udp发送接收流程图
UDP客户端发送请求代码
#coding=utf-8
from socket import * # 1. 创建udp套接字
udp_socket = socket(AF_INET, SOCK_DGRAM) # 2. 准备接收⽅的地址
# '192.168.1.103'表⽰⽬的ip地址 # 8080表⽰⽬的端⼝
dest_addr = ('192.168.1.103', 8080) # 注意 是元组,ip是字符串,端⼝是数字
# 3. 从键盘获取数据
send_data = input("请输⼊要发送的数据:")
# 4. 发送数据到指定的电脑上的指定程序中 python3中需要将字符转码
udp_socket.sendto(send_data.encode('utf-8'), dest_addr)
# 5. 关闭套接字
udp_socket.close()
UDP接收请求代码
import socket
udp_socket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
dest_addr=('192.168.0.119',8080)
udp_socket.bind(dest_addr)
recv_data=udp_socket.recvfrom(1024)
print(recv_data)
udp_socket.close()
UDP[WinError 10054] 远程主机强迫关闭了一个现有的连接。
#encoding="utf-8"
import socket
help(socket.socket.bind)
socket.setdefaulttimeout(10)
udp_socket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
dest_addr=('192.168.0.119',8080)
send_data=input("发送数据:")
udp_socket.sendto(send_data.encode('utf-8'),dest_addr)
print("数据发送成功")
#发送数据后立即接收
try:
recv_data=udp_socket.recvfrom(1024)
except Exception as e:
print(e)
else:
print(recv_data)
udp_socket.close()
、
在发送数据后立即接收数据,会报[WinError 10054] 远程主机强迫关闭了一个现有的连接。这是因为端口未绑定无法接收数据,需要bing()