UDP协议:

UDP (User Datagram Protocol, 用户数据报协议) 是一种无连接,不可靠,基于数据的传输层通信协议。

UDP的通信过程与TCP相比比较为简单, 不需要复杂的三次握手四次挥手,提现了无连接;

UDP传输速度比TCP快, 但容易丢包,数据到达准确性无保证, 缺乏拥塞控制, 秉承尽最大努力交付的远着,提现了不可靠;

UDP的无连接与不可靠特性注定无法采用字节流的通信模式,由协议名中[Datagram] 与socket类型中的[SOCK_DGRAM]即可提现他基于数据报的通信模式。

#服务端
import socket #第一个参数为 socket.AF_INET,代表采用 IPv4 协议用于网络通信,
# 第二个参数为 socket.SOCK_DGRAM,代表采用 UDP 协议用于无连接的网络通信。
soc = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
#服务端才需要绑定IP和端口
soc.bind("127.0.0.1",6000) print("udp bound on port 6000") while True:
data, addr = soc.recvfrom("")
print("receive:%s %s"%(addr, data)) if data == b"exit":
soc.sendto(b"goodbye", addr)
continue
soc.sendto(b"hello %s "% data,addr)
soc.close()
#客户端
sclient = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
addr = ("127.0.0.1",6000) while True:
data = input("please enter a word:")
if not data:
continue
sclient.sendto(data.encode(), addr)
responese, addr = sclient.recvfrom(1024)
print(responese.decode)
if responese == b'exit':
print("sesion is over from %s : %s"%addr)
breakpoint() sclient.close()

非常详细的UDP解析,来自:

https://www.freebuf.com/column/175176.html

python3--udp/TCP笔记和实践的更多相关文章

  1. Python复习笔记(六)网络编程(udp/tcp)

    一.网络-udp(用户数据报协议) 用户数据报协议 类似写信,不安全,数据有可能丢 1.1 ip地址 注意: IP地址127.0.0.1 ~ 127.255.255.255 用于回路测试 私有ip地址 ...

  2. 计算机网络基础笔记 运输层协议UDP/TCP

    目录 UDP 首部结构 主要特点 TCP 首部结构 主要特点 TCP 可靠性实现 停止等待ARQ协议 连续ARQ协议&滑动窗口协议 拥塞控制 TCP 运输连接管理 连接建立:三次握手 连接释放 ...

  3. java网络编程socket\server\TCP笔记(转)

    java网络编程socket\server\TCP笔记(转) 2012-12-14 08:30:04|  分类: Socket |  标签:java  |举报|字号 订阅     1 TCP的开销 a ...

  4. Python Socket Programming UDP/TCP

    基于UDP/TCP的套接字编程demo UDP 客户端/服务器 一个简单的基于UDP协议的客户端和服务器应用的进程通信. 逻辑: 客户端会给服务器发送小写的英文字母,服务器接受后,把它转化成大写再返回 ...

  5. TCP\IP协议实践:wireshark抓包分析之链路层与网络层

    目录 TCP\IP协议实践:wireshark抓包分析之链路层与网络层 从ping开始 链路层之以太网封装 ip首部 开启ping程序,开始抓包 由一个ping的结果引出来的两个协议ARP ICMP ...

  6. Python3实现TCP端口扫描

    在渗透测试的初步阶段通常我们都需要对攻击目标进行信息搜集,而端口扫描就是信息搜集中至关重要的一个步骤.通过端口扫描我们可以了解到目标主机都开放了哪些服务,甚至能根据服务猜测可能存在某些漏洞. TCP端 ...

  7. python3.4学习笔记(十七) 网络爬虫使用Beautifulsoup4抓取内容

    python3.4学习笔记(十七) 网络爬虫使用Beautifulsoup4抓取内容 Beautiful Soup 是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖 ...

  8. Python3实现TCP端口扫描器

    本文来自 高海峰对 玄魂工作室 的投稿 作者:高海峰 QQ:543589796 在渗透测试的初步阶段通常我们都需要对攻击目标进行信息搜集,而端口扫描就是信息搜集中至关重要的一个步骤.通过端口扫描我们可 ...

  9. python3.4学习笔记(十三) 网络爬虫实例代码,使用pyspider抓取多牛投资吧里面的文章信息,抓取政府网新闻内容

    python3.4学习笔记(十三) 网络爬虫实例代码,使用pyspider抓取多牛投资吧里面的文章信息PySpider:一个国人编写的强大的网络爬虫系统并带有强大的WebUI,采用Python语言编写 ...

随机推荐

  1. python socket使用

    自学python,先在菜鸟教程网自学,然后买了本书看.又从同事那里淘到了某个培训学校python教学视频,查缺补漏.视频是用python3.0讲的,讲解的很不错,中间有让写作业,这个我很喜欢.这几天看 ...

  2. (转) 修改weblogic部署的应用名称

    通过weblogic管理后台console进行发布本地项目的时候,它会默认以WEB-INF的上一级目录作为访问路径, 如,假如你的项目WEB-INF目录的上一层是WebRoot,那么发布后, 访问的路 ...

  3. 生成树计数及应用 Matrix-Tree

    例:给定一个图,图上每条边是红色或蓝色 求恰好有K条红边的生成树的个数,N<=50. Matrix-Tree定理 对于限制条件可以利用多项式,把红边边权设为X,蓝边边权设为1. 最后求行列式得到 ...

  4. vue父组件调用子组件方法、父组件向子组件传值、子组件向父组件传值

      一.父组件调用子组件方法 父组件代码  parent.vue <template> <div> <button @click="parentFun" ...

  5. mysqldump导出时 --set-gtid-purged=OFF

    mysqldump导出表 [root@bj db10044]# rpm -qf `which mysqldump`Percona-Server-client-56-5.6.22-rel71.0.el6 ...

  6. Rsync参数介绍

    Rsync参数介绍   一.Rsync Rsync是一款开源的.快速的.多功能的.可实现全量及增量的本地或远程数据镜像同步备份的优秀工具.rsync适用于unix/linux/windows等多种操作 ...

  7. 如何提升scrapy爬取数据的效率

    在配置文件中修改相关参数: 增加并发 默认的scrapy开启的并发线程为32个,可以适当的进行增加,再配置文件中修改CONCURRENT_REQUESTS = 100值为100,并发设置成了为100. ...

  8. 【leetcode】1209. Remove All Adjacent Duplicates in String II

    题目如下: Given a string s, a k duplicate removal consists of choosing k adjacent and equal letters from ...

  9. 【shell】sed处理多行合并

    有这么一个题 文件格式 table=t1 name owner address table=t2 id text col1 comment col5 table=t3 prod_name price ...

  10. C#Regex中replace方法的替换自定义小数点后的内容

    $1应该就是引用了这个组,不用这个会匹配不到 /// <summary> /// 截取 /// </summary> /// <param name="n&qu ...