# flow-analysls-cpp **Repository Path**: mi9688-wine/flow-analysls-cpp ## Basic Information - **Project Name**: flow-analysls-cpp - **Description**: 网络流量识别 - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-09-18 - **Last Updated**: 2024-11-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # flow-analysls-cpp #### 介绍 本项目是作者大二期间学习网络流量获取与分析课程过程中基于libpcap库采用c/c++语言编写的的网络流量获取与分析程序。捕获本机网卡经过的流量,实时分析,协议解析(tcp\udp\http\icmp\dns\arp等协议),保存解析的结果到数据库(mysql),手写线程池采用多线程异步保存解析结果。封装jdbc实现orm映射以及保存数据方法。 #### 软件架构 基于c/c++ libpcap库 mysql-jdbc驱动(C++) #### 安装教程 开发工具qtcreate 克隆本项目,配置好mysql连接信息,初始化数据库 编译运行即可。 #### 使用说明 本程序在解析完协议传输的内容后采取异步多线程方式持久化数据,对于流量较大的场景会出现丢失数据问题。原因是采用vector实现任务队列,不断将解析完的结果添加到队列,同时不断从队列中拿结果持久化并删除。流量大时会导致oom问题,为了保证稳定性,在任务队列达到上限后未进行持久化的任务数据会主动丢弃。