首页 > 其他分享 >QT wireshark

QT wireshark

时间:2023-10-02 16:01:12浏览次数:34  
标签:QT multhread 捕获 线程 数据包 wireshark

二、子线程输出网卡捕获的数据

创建multithread源文件进行子线程的配置,设置相应的工作状态表示。

 

multhread::run()

使用while循环,因为执行状态中需要进行不断的捕获

如果isDone成立了,那么表示捕获动作进行终止,就退出,否则就获取下一个数据包,并进行打印时间戳。

 

在mainwindow中添加

multhread* thread = new multhread; 并没有把这个子线程挂到主线程的对象树上。

需要考虑的问题 主线程和子线程之间如何进行数据之间的交互

这里依旧用的是通过信号和槽,在capture里去定义发送信号

调试的过程中有些内容还没实现怎么调试?用qDebug

format 用于管理数据包的一些字段

emit send(data)

datapackage:

从wireshark的格式可以看出他能显示的数据的内容包括编号,数据包的长度,格式,源、目的、基础信息

视频中出现的快捷键 选中属性,alt + enter

 

ethernetPackageHandle从mac层开始解析,传参第二个直接储存解析结果方便获取

 

基于QT的仿wireshark网络包捕获程序

项目技术:QT+socket套接字编程+libpcap网络嗅探+数据包解析

1.注册qRegisterMetaType自定义类型依靠信号与槽实现跨线程数据通信

2.pcap获取虚拟机设备并显示到combox中切换网卡

3.子线程捕获数据包并标记,主线程在tablewidget中对数据包内容按时间戳列举

4.选中的数据包以treeWidget树形结构对MAC、IP、TCP/ARP头部字段解析展示

标签:QT,multhread,捕获,线程,数据包,wireshark
From: https://www.cnblogs.com/synapse331/p/17739995.html

相关文章

  • pyqt5-QSplitter分裂器组件
    1、介绍QSplitter,分裂器组件。用于水平或垂直方向上布局管理,可以拖动其内某一方向上的分隔线,改变各组件在该方向上的尺寸分配。QSplitter(parent:typing.Optional[QWidget]=None)QSplitter(orientation:Qt.Orientation,parent:typing.Optional[QWidget]=None)2、子组......
  • pyqt5-QAbstractButton抽象按钮类
    1、介绍QAbstractButton,抽象按钮类。该类定义了按钮类型组件的常用方法和事件,是QPushButton按钮组件、QCheckBox多选按钮组件、QRadioButton单选按钮组件的直接父类。另一方面,该类直接继承QWidget类。2、基础使用setText(self,text:str)设置文本text(self)->str获取......
  • pyqt5-QCheckBox多选框组件
    1、介绍QCheckBox,多选按钮。QCheckBox(parent:typing.Optional[QWidget]=None)QCheckBox(text:str,parent:typing.Optional[QWidget]=None)2、基础使用setText(self,text:str)设置文本text(self)->str获取文本setCheckable(self,a0:bool)设置是否可......
  • pyqt5-QRadioButton单选按钮组件
    1、介绍QRadioButton,单选按钮。多个单选按钮在同一组件中,只能最多被选择一个。可以通过GroupBox划分范围。QRadioButton(parent:typing.Optional[QWidget]=None)QRadioButton(text:str,parent:typing.Optional[QWidget]=None)2、基础使用QRadioButton继承QAbstractB......
  • pyqt5-QInputDialog输入对话框组件
    1、介绍QInputDialog输入对话框,提供了五种输入模式,进行快捷的输入交互。对话框打开时,无论是否设置parent,都不能操作其它窗口返回tuple类型,索引1为bool类型,为True表示点击Ok按钮关闭对话框,为False则是点击Cancle按钮或窗口右上角关闭按钮调用方法时,必须设置相关的必要参数。但......
  • pyqt5-QMainWindow主窗口组件
    1、介绍QMainWindow,主窗口组件。该类型组件相比于QWidget作为窗口而言,主要是增加了菜单栏、状态栏和工具栏2、基础使用setIconSize(self,iconSize:QSize)设置图片大小iconSize(self)->QSize获取图片大小setMenuBar(self,menubar:QMenuBar)设置菜单栏men......
  • pyqt5-QGroupBox分组箱组件
    1、介绍QGroupBox,分组箱组件。作用是将多个组件归纳为一组,方便ui设计和使用提示。2、基础使用setTitle(self,a0:str)设置标题文本title(self)->str获取标题文本setCheckable(self,b:bool)设置是否可选。默认为False如果设置为True,则在标题文本左侧会出现一......
  • pyqt5-QComboBox下拉列表组件
    1、介绍QComboBox,下拉列表组件。2、项操作clear(self)清除项addItem(self,text:str,userData:Any=None)addItem(self,icon:QIcon,text:str,userData:Any=None)添加项addItems(self,texts:Iterable[str])添加多个项insertItem(self,index:int,t......
  • pyqt5-QListWidgetItem列表项组件
    1、介绍QListWidgetItem,列表项组件。QListWidgetItem(parent:typing.Optional[QListWidget]=None,type:int=QListWidgetItem.Type)QListWidgetItem(text:str,parent:typing.Optional[QListWidget]=None,type:int=QListWidgetItem.Type)QListWidgetItem(icon:......
  • pyqt5-QListWidget列表组件
    1、介绍QListWidget,列表组件2、基础使用addItem(self,aitem:QListWidgetItem)addItem(self,label:str)添加项addItems(self,labels:Iterable[str])添加多个项item(self,row:int)->QListWidgetItem获取指定索引的项insertItem(self,row:int,item:QLi......