UDP — 用户数据报协议(User Datagram Protocol),是一个无连接的简单的面向数据报的运输层协议。

UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。

由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。

开发环境:linux下pycharm3.5

测试:使用terminal终端测试

  • 使用 nc -u ip 端口 进行测试客户端

  • 使用 nc -lu ip 端口 进行测试服务器端

1.udp服务器端接受一次数据

import socket# 设置服务器默认端口号
PORT = 9002
# 创建一个套接字socket对象,用于进行通讯
# socket.AF_INET 指明使用INET地址集,进行网间通讯
# socket.SOCK_DGRAM 指明使用数据协议,即使用传输层的udp协议
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
address = ("", PORT)
# 为服务器绑定一个固定的地址,ip和端口
server_socket.bind(address)
# 接收客户端传来的数据 recvfrom接收客户端的数据,默认是阻塞的,直到有客户端传来数据
# recvfrom 参数的意义,表示最大能接收多少数据,单位是字节
# recvfrom返回值说明
# receive_data表示接受到的传来的数据,是bytes类型, receive_data.decode()解码,将bytes类型转换为字符串类型
# client_address 表示传来数据的客户端的身份信息,客户端的ip和端口,元组
receive_data, client = server_socket.recvfrom(1024)print("来自客户端%s,发送的%s" % (client, receive_data.decode()))
# 不再接收数据的时候,将套接字socket关闭
server_socket.close()

测试:

2.udp服务端循环多次接受数据

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import socketPORT = 9002
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
address = ("192.168.219.129", PORT)
server_socket.bind(address)
while True:receive_data, client_address = server_socket.recvfrom(1024)print("接收到了客户端 %s 传来的数据: %s" % (client_address, receive_data.decode()))

3.udp客户端接受一次数据

import socketclient_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
msg = input("请输入要发送的内容:")  # 字符串类型, 通过msg.encode() 编码 转换为bytes类型
server_address = ("127.0.0.1", 8000)  # 接收方 服务器的ip地址和端口号
client_socket.sendto(msg.encode(), server_address)
client_socket.close()

4.udp客户端循环多次接受数据

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import socketclient_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
while True:msg = input("请输入要发送的内容:")   server_address = ("192.168.79.127", 8000)  client_socket.sendto(msg.encode(), server_address)

5.udp服务器端循环多次接受发送数据

import socketPORT = 8000
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
address = ("", PORT)
server_socket.bind(address)
while True:receive_data, client_address = server_socket.recvfrom(1024)print("接收到了客户端d %s 传来的数据: %s" % (client_address, receive_data.decode()))server_socket.sendto(receive_data, client_address)

6.udp客户端循环多次接受发送数据

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import socketclient_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)while True:msg = input("请输入要发送的内容:")server_address = ("", 8000) client_socket.sendto(msg.encode(), server_address) receive_data, sender_address = client_socket.recvfrom(1024)print("接受到了发送方 %s 传来的数据: %s" % (sender_address, receive_data.decode()))

python网络编程:UDP方式传输数据相关推荐

  1. python网络编程——UDP通信附实例参考

    简介 在网络通信编程中,用的最多的就是UDP和TCP通信了,原理这里就不分析了,网上介绍也很多,这里简单列举一下各自的优缺点和使用场景 通信方式 优点 缺点 适用场景 UDP 及时性好,快速 视网络情 ...

  2. python网络编程—UDP协议

    一.UDP协议特点: UDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送.UDP传输数据时有大小限制,每个被传输的数据报必须限定在64KB之 ...

  3. python网络编程—UDP的echo服务

    一.echo服务 echo服务是一种非常有用的用于调试和检测的工具,该协议接收到什么原样返回客户端 二.代码实现echo服务 需求 UDP客户端.客户端可以发送多条数据,2.客户端如果发送一个&quo ...

  4. python网络编程--UDP客户端

    0x01 环境 python.pycharm 0x02 程序 # -*- coding:utf-8 -*-import sockettarget_host='127.0.0.1' target_par ...

  5. Python网络编程——TCP与UDP

    Python网络编程 TCP(复杂可靠)与UDP(简单不可靠)的区别 1) TCP提供面向连接的传输,通信前要先建立连接(三次握手机制): UDP提供无连接的传输,通信前不需要建立连接. 2) TCP ...

  6. python网络编程-异常处理-异常捕获-抛出异常-断言-自定义异常-UDP通信-socketserver模块应用-03

    python网络编程-异常处理-异常捕获-抛出异常-断言-自定义异常-UDP通信-socketserver模块应用-03 参考文章: (1)python网络编程-异常处理-异常捕获-抛出异常-断言-自 ...

  7. python网络编程自学_五分钟搞定Python网络编程实现TCP和UDP连接

    Python网络编程实现TCP和UDP连接, 使用socket模块, 所有代码在python3下测试通过. 实现TCP#!/usr/bin/env python3 # -*- coding: utf- ...

  8. python网络编程(苦肝一夜,近万字)

    文章目录 一.TCP/IP简介 二.网络设计模块 1.Socket简介 2.python中的socket模块,使用该模块建立服务器需要6个步骤. 1.创建socket对象. 2.将socket绑定(指 ...

  9. [转载] PYTHON 网络编程

    参考链接: Python | 使用openpyxl在Excel文件中进行三角运算 Socket 编程实战 文章目录 Socket库 0.1. 什么是 Socket? 0.2. socket()函数 0 ...

  10. python网络编程内容_图解Python网络编程

    Python Python开发 Python语言 图解Python网络编程 本篇索引 (1)基本原理 本篇指的网络编程,仅仅是指如何在两台或多台计算机之间,通过网络收发数据包:而不涉及具体的应用层功能 ...

最新文章

  1. [hdu 1561] The more, The Better
  2. 判断js中的数据类型的几种方法
  3. 解决JavaScript中使用$.ajax方式提交数组参数
  4. html盒子移动动画代码,HTML5/Canvas 盒子追踪动画
  5. liteIDE配置环境变量
  6. new与malloc的区别以及实现方法
  7. IOS开发高级之点餐系统的实现-01
  8. 下载spotify音乐_如何在Spotify上播放更高质量的音乐
  9. 【设计模式之美】<Reading Notes>抽象类与接口
  10. 腾讯微博虽然停运,但其仍是一款成功的产品
  11. 网页防篡改测试报告(2008版)
  12. srgan要训练多久_有氧运动要多久才开始消耗脂肪?
  13. B站,又被扫黄了!!!
  14. eslint 保存自动修复_ESLint 自动修复问题之如何保留最后修改人信息
  15. 音乐源码重新上传了,请童鞋们自行下载
  16. matlab latex表示,科学网—MATLAB程序如何在latex上发表? - 卢远志的博文
  17. win7 安装深度linux系统,深度系统纯净版win7下载安装推荐
  18. 智方8000系房地产进销存管理系统 v4.30 官网
  19. 利用UCSC Xena做TCGA数据库的生存曲线分析
  20. 基于单片机的GSM短信家庭防盗报警系统

热门文章

  1. Asp.Net MVC4下设置W3P3(IIS)调试步骤
  2. Android 中input event的分析
  3. SQLite数据库介绍
  4. 如何隐藏android的屏幕上的Title Bar
  5. 利用Cobbler批量快速网络安装CentOS
  6. Git学习教程(一):git简介
  7. python编程规范 谷歌_Python最新编程规范,新手必学
  8. cloud自动发卡平台cloudfaka_科亚k-cloud智能控制系统解决方案助力配混改性工厂
  9. iphone无法连接电脑_电脑开机无线网卡无法自动连接网络怎么办?
  10. 柿子不能和什么同吃?柿子相克食物大盘点