python 学习之旅-udp简单实现

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值