python拦截tcp数据包,使用python解码TCP数据包
我正在尝试解码通过TCP连接接收到的数据。数据包很小,不超过100字节。然而,当它们很多的时候,我会收到一些连接在一起的包。有没有办法防止这种情况发生?我用的是蟒蛇
我已经尝试分离数据包,我的来源在下面。数据包以stx字节开始,以etx字节结束,stx后面的字节是数据包长度(小于5的数据包长度无效),校验和是etx之前的最后一个字节。
def decode(data):
while True:
start = data.find(STX)
if start == -1: #no stx in message
pkt = ''
data = ''
break
#stx found , next byte is the length
pktlen = ord(data[1])
#check message ends in ETX (pktken -1) or checksum invalid
if pktlen < 5 or data[pktlen-1] != ETX or checksum_valid(data[start:pktlen]) == False:
print "Invalid Pkt"
data = data[start+1:]
continue
else:
pkt = data[start:pktlen]
data = data[pktlen:]
break
return data , pkt
我就是这样用的
#process reports
try:
data = sock.recv(256)
except: continue
else:
while data:
data, pkt = decode(data)
if pkt:
process(pkt)
另外,如果数据流中有多个数据包,最好将这些数据包作为列表的集合返回,还是只返回第一个数据包
我不太熟悉python,只有c,这个方法可以吗?任何建议都将是最受欢迎的。提前谢谢
谢谢
python拦截tcp数据包,使用python解码TCP数据包相关推荐
- netty的编解码、粘包拆包问题、心跳检测机制原理
文章目录 1. 编码解码器 2. 编解码序列化机制的性能优化 3. Netty粘包拆包 4. Netty心跳检测机制 5. Netty断线自动重连实现 1. 编码解码器 当你通过netty发送或者接受 ...
- 【Android RTMP】音频数据采集编码 ( AAC 音频格式解析 | FLV 音频数据标签解析 | AAC 音频数据标签头 | 音频解码配置信息 )
文章目录 安卓直播推流专栏博客总结 一. AAC 音频格式解析 二. FLV 音频数据标签解析 1. 分析 FLV 格式中的 AAC 音频格式数据 2. AAC 音频特殊配置 3. AAC 音频数据标 ...
- python拦截修改数据包_会Python?那么你一定要试一试mitmproxy
mitmproxy 是一款工具,也可以说是 python 的一个包,使用这个工具可以在命令行上进行抓包(现在也可以在web页面上查看上抓的数据包了),还可以对所抓到的包进行脚本处理,非常有用. 和 f ...
- python拦截数据包_httphttps,python抓包知多少
原标题:http&https,python抓包知多少 在有些情景下,需要拦截所有的http包和https数据包,http包很好抓,但是https包相对比较复杂,在此文章中,主要介绍http和h ...
- 【Python金融量化 1- 100 】了解Python及常用财经数据接口包
了解Python及常用财经数据接口包 背景介绍: Python是一种计算机程序设计语言,它诞生于20世纪90年代初,正在逐渐被广泛运用中. Python的创始人是Guido van Rossum.相传 ...
- python json数据格式数组内元素递增赋值_利用Python实现JSON格式数据的编码与解码操作...
导读 JSON (全称:JavaScript Object Notation )是一种轻量级的数据交换格式,所谓的轻量级,是与 XML 数据结构相比而言的,在描述相同的数据下,JSON 所需的字符比X ...
- Python中使用sentinelsat包自动下载Sentinel系列数据
Python中使用sentinelsat包自动下载Sentinel系列数据 前言 普通下载 使用工具批量下载Sentinel 数据 使用SNAP批量下载 第三方软件或网站批量下载 Sentinel-1 ...
- JAVA三维可视化组件:Matplot 3D for JAVA(V3.0) 一个纯JAVA开发的科学数据可视化组件包 类似 Python 的matplotlib(含示例代码)
目录 概述 组件下载及项目地址 效果展示和示例代码 概述 Matplot3D for JAVA(V3.0) 是一个基于JAVA SE 1.8环境开发的三维图形图表组件. 组件由纯JAVA SE 实现( ...
- python我想对你说_python学习第4天----is和==区别、小数据池、编码解码
1.is和==的区别 1)==比较的是左右两边的值,无论是字符串.数字.列表,元组.若两边的值相等,则返回True a = "zdz"b= "zdz" prin ...
最新文章
- 方格分割 蓝桥杯心得
- 2010.3.28 OA 项目组工作报告
- 8 关于数据仓库维度数据处理的方法探究系列——父子维
- 开发日记-20190330
- DNS之三 辅助区域和名称解析过程
- implementation of CreateBindingContext
- c语言程序设计俄罗斯方块PPT,俄罗斯方块游戏:C语言程序设计初步感受
- centos 安装trace_前期的准备工作-MacOS Mojave 10.14.3 下安装CentOS 7及Bochs 002
- 用python输出所有的玫瑰花数_用Python爬取WordPress官网所有插件
- 常见的Java基础的面试题
- cmd-ssh使用说明
- gtx780有html接口吗,史上最强显卡供电GTX780入手,纪念给了我人生一堂课的舅妈...
- 离线强化学习总结!(原理、数据集、算法、复杂性分析、超参数调优等)
- 零基础学python-2.17 文件、open()、file()
- w3690 支持服务器内存,微星S20内存是什么
- 梦三国解析服务器spl文件头失败怎么解决,梦三国 卡顿问题的解决方法
- java交通调度,java毕业设计_springboot框架的的车辆调度管理系统
- 验证码(CAPTCHA)
- 如何学习三点透视?该注意什么?
- 第九届“图灵杯”NEUQ-ACM部分汇总
热门文章
- nginx 指定配置文件 启动 重启
- php mysql表情符号_php + mysql 存入表情 【如何转义emoji表情,让它可以存入utf8的数据库】...
- 量子计算机运行速度解方程,量子计算机可解方程组
- 和女朋友在一起的第一个生日送什么礼物?
- java快拍_Java排序之快排
- 广州品向:开发一个类似斗鱼的视频直播app的成本
- 前端三大技术栈之CSS3总结上
- 在c 语言中 引用数组元素时,【单选题】在 C 语言中,引用数组元素时,其数组下标的数据类型不允许是
A. 整型常量 B. 整型表达式 C. 整形符号常量 D. 整型变量...
- java入门-五子棋游戏的制作
- gen-和-egen-中的-sum()-函数