参考:https://www.cnblogs.com/greatfish/p/7368433.html

UDP --- 用户数据报协议(User Datagram Protocol),是一个无连接的简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。

测试方法:使用terminal终端测试,使用 nc -u ip 端口 测试客户端;使用 nc -lu ip 端口 测试服务器端

1.接收一次数据

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.循环多次接收数据

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.发送一次数据

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.循环多次发送数据

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)

Python之UDP编程相关推荐

  1. python的基础网络编程是下列_Python入门基础之网络编程、socket编程、TCP、UDP编程...

    忙了两天,继续更文!希望多多支持. 套接字 套接字是一种具有之前所说的"通讯端点"概念的计算机网络数据结构.网络化的应用程序在开始任何通讯之前都必需要创建套接字. 套接字有三种: ...

  2. Python之网络编程(TCP套接字与UDP套接字)

    文章目录 基于tcp的套接字 实现目标 tcp服务端源码 tcp客户端源码 tcp效果实现 基于udp的套接字 udp作用介绍 udp服务端源码 udp客户端源码 udp效果实现 用udp实现一个时间 ...

  3. python udp编程_详解python UDP 编程

    前面我们讲了 TCP 编程,我们知道 TCP 可以建立可靠连接,并且通信双方都可以以流的形式发送数据.本文我们再来介绍另一个常用的协议–UDP.相对TCP,UDP则是面向无连接的协议. UDP 协议 ...

  4. 跟李宁老师学Python视频课程(15):Python TCP与UDP编程-李宁-专题视频课程

    跟李宁老师学Python视频课程(15):Python TCP与UDP编程-122人已学习 课程介绍         本系列课程一共20套,每一套视频课程会深入讲解Python的一类知识点.Pytho ...

  5. 【018】Python全栈日记-UDP编程

    从今天开始进行网络的学习,主要以socket编程为主,今天先了解一下网络的基础知识和UDP编程.本次日记很有意思哦,最后模拟了微信聊天. 以下计算机基础知识来源于网络(https://www.cnbl ...

  6. PYTHON黑帽编程1.5 使用WIRESHARK练习网络协议分析

    Python黑帽编程1.5  使用Wireshark练习网络协议分析 1.5.0.1  本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks At ...

  7. Python基础-socket编程

    一.网络编程 自从互联网诞生以来,现在基本上所有的程序都是网络程序,很少有单机版的程序了. 计算机网络就是把各个计算机连接到一起,让网络中的计算机可以互相通信.网络编程就是如何在程序中实现两台计算机的 ...

  8. PYTHON黑帽编程 4.1 SNIFFER(嗅探器)之数据捕获(下)

    上一节(<4.1 SNIFFER(嗅探器)之数据捕获(上)>)中, 我们讲解了通过Raw Socket的方式来编写Sniffer的基本方法. 本节我们继续来编写Sniffer,只不过使用现 ...

  9. Python黑帽编程2.8 套接字编程

    Python黑帽编程2.8 套接字编程 套接字编程在本系列教程中地位并不是很突出,但是我们观察网络应用,绝大多数都是基于Socket来做的,哪怕是绝大多数的木马程序也是如此.官方关于socket编程的 ...

最新文章

  1. Python进程和线程保姆式教学,1个台机子多只手干活的秘籍
  2. zephir开发的扩展“wudimei框架”之数据库使用方法
  3. 手机经常提示找不到服务器,经常出现找不到服务器是什么原因?什么网也打 – 手机爱问...
  4. HoneyBadgerBFT:一个网络环境无关的Byzantine容错的分布式共识协议
  5. SAP UI5 Opportunity type long description empty issue
  6. 如何在 C# 中使用 委托
  7. 2019-03-12-算法-进化(合并两个有序数组)
  8. AgileEAS.NET平台-文档发布-还等什么?
  9. RHEL7和RHEL6的主要变化
  10. PHP生成HTML的技术原理
  11. matlab实现模拟退火算法
  12. 用Python读写Word文档入门
  13. ASO优化之新人必备的基础知识技能
  14. 【音乐百科】古琴和古筝的区别
  15. 一些学习的网站 (持续更新)
  16. 【腾讯Bugly干货分享】从0到1打造直播 App
  17. 用Python批量修改图片名称及后缀名
  18. 预测模型之灰色系统预测
  19. [收藏]三国时代的十大遗言
  20. 【前端框架学习】第一次实验 跑马灯效果的制作

热门文章

  1. NO.010-2018.02.15《上邪》两汉:佚名
  2. CA证书服务器(5) 架设企业根CA
  3. 关于集团内委外加工方案
  4. Linux目录中/和~的区别
  5. python中wraps_python 装饰器及标准库functools中的wraps
  6. mysql cascade的用法_MySql和Hibernate中关于cascade的用法
  7. TortoiseGit增加LabView比较器与合并器
  8. fastreport 合计函数_fastreport常用函数
  9. 软件工程导论第一次作业
  10. buu-[FlareOn5]Ultimate Minesweeper