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. usermod 修改用户信息

    7.2 usermod 修改用户信息 1.命令功能 usermod 修改已存在的用户账号信息. 2.语法格式 usermod option login 参数选项说明 选项 选项说明 -c 修改用户pa ...

  2. PHP实现最简单爬虫原型

    本人qq群也有许多的技术文档,希望可以为你提供一些帮助(非技术的勿加). QQ群:   281442983 (点击链接加入群:http://jq.qq.com/?_wv=1027&k=29Lo ...

  3. CodeForces-939A

    链接: https://vjudge.net/problem/CodeForces-939A 题意: As you could know there are no male planes nor fe ...

  4. SpringBoot框架(3)--条件装配

    场景:需要根据系统的编码格式有选择装配类. 分析:最直接的实现方式,定义各种编码格式对应的处理类,可以通过System.getProperty("file.encoding")获得 ...

  5. 关于web网页截图的问题(html2canvas插件)

    import html2canvas from 'html2canvas' import jpg from '@/assets/1.jpg';     htmlToImage=(element, ca ...

  6. python接口自动化一(发送get请求)

    一.环境安装 1.用pip安装requests模块 >>pip install requests 二.get请求 1.导入requests后,用get方法就能直接访问url地址,如:htt ...

  7. ArrayList的contains()和HashSet的contains()效率比较

    ArrayList的contains(Object o)方法内部只有一行代码:判断indexOf(0)是否大于等于0.而indexOf(o)内部会从头遍历数组,直到某位置的元素等于o,极端情况下,要把 ...

  8. C#内存占用释放

    序言 系统启动起来以后,内存占用越来越大,使用析构函数.GC.Collect什么的也不见效果,后来查了好久,找到了个办法,就是使用 SetProcessWorkingSetSize函数.这个函数是Wi ...

  9. jsp页面实现上传文件,并且还得支持断点续传的功能

    我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用. 首先我们需要了解的是上传文件三要素: 1.表单提交方式:post (get方式提交有大小 ...

  10. TTTTTTTTTTTTTTTTTT POJ 1330

    题意:给一个有根树,一个查询节点(u,v)的最近公共祖先: #include <iostream> #include <cstdio> #include <cstring ...