python3--udp/TCP笔记和实践
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笔记和实践的更多相关文章
- Python复习笔记(六)网络编程(udp/tcp)
一.网络-udp(用户数据报协议) 用户数据报协议 类似写信,不安全,数据有可能丢 1.1 ip地址 注意: IP地址127.0.0.1 ~ 127.255.255.255 用于回路测试 私有ip地址 ...
- 计算机网络基础笔记 运输层协议UDP/TCP
目录 UDP 首部结构 主要特点 TCP 首部结构 主要特点 TCP 可靠性实现 停止等待ARQ协议 连续ARQ协议&滑动窗口协议 拥塞控制 TCP 运输连接管理 连接建立:三次握手 连接释放 ...
- java网络编程socket\server\TCP笔记(转)
java网络编程socket\server\TCP笔记(转) 2012-12-14 08:30:04| 分类: Socket | 标签:java |举报|字号 订阅 1 TCP的开销 a ...
- Python Socket Programming UDP/TCP
基于UDP/TCP的套接字编程demo UDP 客户端/服务器 一个简单的基于UDP协议的客户端和服务器应用的进程通信. 逻辑: 客户端会给服务器发送小写的英文字母,服务器接受后,把它转化成大写再返回 ...
- TCP\IP协议实践:wireshark抓包分析之链路层与网络层
目录 TCP\IP协议实践:wireshark抓包分析之链路层与网络层 从ping开始 链路层之以太网封装 ip首部 开启ping程序,开始抓包 由一个ping的结果引出来的两个协议ARP ICMP ...
- Python3实现TCP端口扫描
在渗透测试的初步阶段通常我们都需要对攻击目标进行信息搜集,而端口扫描就是信息搜集中至关重要的一个步骤.通过端口扫描我们可以了解到目标主机都开放了哪些服务,甚至能根据服务猜测可能存在某些漏洞. TCP端 ...
- python3.4学习笔记(十七) 网络爬虫使用Beautifulsoup4抓取内容
python3.4学习笔记(十七) 网络爬虫使用Beautifulsoup4抓取内容 Beautiful Soup 是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖 ...
- Python3实现TCP端口扫描器
本文来自 高海峰对 玄魂工作室 的投稿 作者:高海峰 QQ:543589796 在渗透测试的初步阶段通常我们都需要对攻击目标进行信息搜集,而端口扫描就是信息搜集中至关重要的一个步骤.通过端口扫描我们可 ...
- python3.4学习笔记(十三) 网络爬虫实例代码,使用pyspider抓取多牛投资吧里面的文章信息,抓取政府网新闻内容
python3.4学习笔记(十三) 网络爬虫实例代码,使用pyspider抓取多牛投资吧里面的文章信息PySpider:一个国人编写的强大的网络爬虫系统并带有强大的WebUI,采用Python语言编写 ...
随机推荐
- Spring AOP 使用注解定义切面(转载)
原文地址:http://www.jianshu.com/p/6f40dddd71a5 1.定义切面 下面我们就来定义一场舞台剧中观众的切面类Audience: package com.spring.a ...
- 用jquery控制表单提交
可以监听表单submit提交事件给form一个id 吧button的type为submit $(form的id).submit(function(){ if(window.confirm('你确定要取 ...
- big.js常用方法
官网api:http://mikemcl.github.io/big.js/ +:minus.minus(n) ⇒ Big %:mod.mod(n) ⇒ Big -:plus.plus(n) ⇒ B ...
- 关于web网页截图的问题(html2canvas插件)
import html2canvas from 'html2canvas' import jpg from '@/assets/1.jpg'; htmlToImage=(element, ca ...
- 关于antd表单的自行校验
rules里面加上validator验证,value就是输入的值 上面为正则表达式的检验
- JAVA笔记15-线程同步
一.概念 1.多个线程之间访问同一资源,进行协调的过程是线程同步.例如两个人同时操作同一银行账户.解决方法:加锁 2.Java种引入对象互斥锁的概念,保证共享数据操作的完整性.每个对象都对应于一个可称 ...
- Arduino连接MPU6050陀螺仪
一.线路连接 Arduino MPU6050 VCC 3.3V/5V GND GND SCL A5 SDA A4 INT D2 二.库下载 https://pan.baidu.com/s/1nvt75 ...
- Nginx模块开发实验
工作原理: 当nginx接到 一个http请求之后,会找通过查找配置文件,并在配置文件中找到相应的地址映射,该地址也叫location block,而location中配置的文件会启动 相应的bloc ...
- 如何查看 mysql 的视图?
1.查询表(包括view) mysql> use iips; Database changed mysql> show tables; +------------------------- ...
- vue发布到iis
1.npm run build. 执行打包命令,会在目录生成dist目录,这个目录里放的就是打包好的文件. 2.把dist目录下的文件发布到iis即可. 测试发现:发布到iis的虚拟目录不行.必须是 ...