自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 收藏
  • 关注

原创 啊啊

https://blog.csdn.net/qq_15192373/article/details/81536602?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~baidu_landing_v2~default-1-81536602.nonecase&utm_term=win10%E5%88%A0%E5%8F%8C%E7%B3%BB%E7%BB%9F&spm=1000.2123.3001.4430

2020-10-23 18:56:17 116

转载 什么是TCP粘包?怎么解决这个问题

在socket网络编程中,都是端到端通信,由客户端端口+服务端端口+客户端IP+服务端IP+传输协议组成的五元组可以明确的标识一条连接。在TCP的socket编程中,发送端和接收端都有成对的socket。发送端为了将多个发往接收端的包,更加高效的的发给接收端,于是采用了优化算法(Nagle算法),将多次间隔较小、数据量较小的数据,合并成一个数据量大的数据块,然后进行封包。那么这样一来,接收端就必须使用高效科学的拆包机制来分辨这些数据。1.Q:什么是TCP粘包问题?TCP粘包就是指发送方发送的若干包数

2020-09-23 11:20:55 131

转载 远程通信协议原理(TCP/IP 协议)

一个 http 请求的整个流程那么在分布式架构中,有一个很重要的环节,就是分布式网络中的计算机节点彼此之间需要通信。这个通信的过程一定会涉及到通信协议相关的知识点,当然大家也可能知道一些,但是我会尽可能的把通信这一块的内容串起来,加深大家的理解。我们每天都在用浏览器访问各种网站,作为用户来说,只需要需要输入一个网址并且正确跳转就行。但是作为程序员,看到的可能就是这个响应背后的整体流程。所以我想通过一个 http请求的整个流程来进行讲解通信的知识负责域名解析的 DNS 服务首先,用户访问一个域

2020-09-15 22:31:10 2592

转载 Http协议详解(深入理解)

引入超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基。Ted Nelson组织协调万维网协会(World Wide Web Consortium)和互联网工程工作小组(In

2020-09-14 18:15:40 1109

转载 HTTP详解

HTTP协议简介超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。HTTP的发展是由蒂姆·伯纳斯-李于1989年在欧洲核子研究组织(CERN)所发起。HTTP的标准制定由万维网协会(World Wide Web Consortium,W3C)和互联网工程任务组(Internet Engineering Task Force,IETF)进行协调,最终发布了一系列的RFC,

2020-09-13 10:14:44 171

原创 C/C++库函数实现

1、strcpy 从strSrc地址开始且含有NULL结束符的字符串复制到以strDest开始的地址空间char * strcpy(char *strDest, const char * strSrc){ assert((strDest != NULL) && (strSrc != NULL)); //if (strDest == NULL || strSrc == NULL) return NULL; //保存目标字符串的首地址 char *strD.

2020-08-08 11:23:59 500

转载 最长回文子串

解法 1:暴力法菜鸡的我第一想法只能想到暴力法,遍历各种可能结果。class Solution {public: string longestPalindrome(string s) { string res="";//存放结果 string temp="";//存放子串 for(int i=0;i<s.length();i++) { for(int j=i;j<s.length();j++...

2020-08-08 09:59:39 234

原创 合并链表

已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序(可以用递归的方式)#include <string.h>struct node{ int data; node *next;};node *MergeRecursive(node *head1, node *head2){ node *head = NULL; if (head1 == NULL) { return head2;

2020-08-04 21:33:50 166

转载 反转一个单链表

目录例题描述 思路一 代码实现 思路二 代码实现 例题描述反转一个链表示例:输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL结构体定义struct ListNode { int val; struct ListNode *next;};1 2 3 4思路一先对原链表做头删操作,再对新链表做头插定义一个新head头指针,标记为.

2020-08-04 20:52:34 1055

原创 面试题:sizeof

一、int main(){int **a[3][6];printf("%d\n",sizeof(a));printf("%d\n",sizeof(*a));printf("%d\n",sizeof(**a));printf("%d\n",sizeof(***a));printf("%d\n",sizeof(****a));return 0;}输出结果:3...

2019-10-27 10:24:53 230

转载 多态的实现原理

一、多态的概念 多态就是多种形态,C++的多态分为静态多态与动态多态。静态多态就是重载,因为在编译期决议确定,所以称为静态多态。在编译时就可以确定函数地址。动态多态就是通过继承重写基类的虚函数实现的多态,因为实在运行时决议确定,所以称为动态多态。运行时在虚函数表中寻找调用函数的地址。 在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时...

2019-10-23 19:28:43 852

转载 虚函数详解

前言C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不...

2019-10-23 18:59:02 1219

转载 this指针

用类去定义对象时,系统会为每一个对象分配存储空间。如果一个类包括了数据和函数,要分别为数据和函数的代码分配存储空间。按理说,如果用同一个类定义了10个对象,那么就需要分别为10个对象的数据和函数代码分配存储单元。能否只用一段空间来存放这个共同的函数代码段,在调用各对象的函数时,都去调用这个公用的函数代码。这里举一个例子来说明:#include <iostream&gt...

2019-10-21 17:53:28 213

转载 拷贝构造函数详解

一、什么是拷贝构造函数 首先对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=100;int b=a;而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。 运行程序,屏幕输出100。从以上代码的运行结果可以看出,系统为对象 B 分配了内存并完成了与对象 A 的复制过程。就类对象而言,相同类...

2019-10-21 16:26:24 2200

转载 拷贝构造函数的参数为什么必须使用引用类型

在C++中, 构造函数,拷贝构造函数,析构函数和赋值函数(赋值运算符重载)是最基本不过的需要掌握的知识。 但是如果我问你“拷贝构造函数的参数为什么必须使用引用类型?”这个问题, 你会怎么回答? 或许你会回答为了减少一次内存拷贝? 很惭愧的是,我的第一感觉也是这么回答。不好还好,我有理性这个好品质。思索一下以后,发现这个答案是不对的。让我来撕开(有点暴力,但是我喜欢,嘿嘿--龇牙)那件隐藏在真理外的...

2019-10-21 16:05:21 166

转载 希尔排序--图解

图解算法---希尔排序前情回顾:直接插入排序(对插入排序不熟悉的建议先阅读此文)一天,一尘拿着扑克自己在那玩,刚被师傅看见了首先它把较大的数据集合分割成若干个小组(逻辑上分组),然后对每一个小组分别进行插入排序,此时,插入排序所作用的数据量比较小(每一个小组),插入的效率比较高可以看出,他是按下标相隔距离为4分的组,也就是说把下标相差4的分到一组,比如这...

2019-10-16 09:12:02 94

转载 mongoDB的c++接口的说明

说明: * IN表示输入参数; * OUT表示输出参数;(1)构造函数:DBClientConnection(bool auto_connect, 0, double so_timeout);auto_connect(IN):连接失败后自动重连so_timeout(IN):非连接超时,tcp的读写超时(2)连接mongo:bool connect(string

2017-11-06 19:50:04 294

转载 linux lsmod命令 及相关信息

lsmod  (list modules)语法:lsmod功能:lsmod命令:是一个小程序,用来显示文件、proc/modules的信息,也就是显示当前内核模块装载的模块。补充说明:执行lsmod指令,会列出所有已载入系统的模块。Linux操作系统的核心具有模块化的特性,应此在编译核心时,务须把全部的功能都放入核心。您可以将这些功能编译成一个个单独的模块,待需要时

2017-06-01 10:08:04 16681 1

转载 PF_RING实现分析

PF_RING实现分析http://bbs.chinaunix.net/thread-1943951-1-1.html版权所有,转载请注明出处独孤九贱内核版本:Linux 2.6.30.9PF_RING版本:4.1.0最近看了一个PF_RING的实现,看了个大概,发上来大家讨论讨论,共同学习。一、什么是PF_RINGPF_RING是一个第三方的内

2017-05-16 10:02:30 1779

转载 深度数据包检测(DPI)

深度数据包检测(DPI)深度数据包检测(Deep packet inspection,缩写为 DPI)是一种特殊的网络技术,一般网络设备只会查看以太网头部、IP头部而不会分析TCP/UDP里面的内容这种被称为浅数据包检测;与之对应的DPI会检查TCP/UDP里面的内容,所以称为深度数据包检测。DPI一般是一个硬件或者软件,一般用“旁挂”的方式接入到网络。它会对网络中的每个数据包进行

2017-05-12 17:17:51 19143 1

转载 libpcap使用

libpcap使用libpcap是一个网络数据包捕获函数库,功能非常强大,Linux下著名的tcpdump就是以它为基础的。今天我们利用它来完成一个我们自己的网络嗅探器(sniffer)首先先介绍一下本次实验的环境:Ubuntu 11.04,IP:192.168.1.1,广播地址:192.168.1.255,子网掩码:255.255.255.0可以使用下

2017-05-12 09:21:17 361

转载 Linux 网络编程—— libpcap 详解

概述libpcap 是一个网络数据包捕获函数库,功能非常强大,Linux 下著名的 tcpdump 就是以它为基础的。libpcap主要的作用1)捕获各种数据包,列如:网络流量统计。2)过滤网络数据包,列如:过滤掉本地上的一些数据,类似防火墙。3)分析网络数据包,列如:分析网络协议,数据的采集。4)存储网络数据包,列如:保存捕

2017-05-12 09:19:48 761

转载 pcapReader——源码分析

一、简介        pcapReader是ndpi开源中的一个example。大家可以从/example/pcapReader.c中找到它的源代码。通过pcaplib和ndpi相结合,进行深度包检测。虽然只有短短的几行代码,但是他将展现的不仅是pcaplib和ndpi的使用方法,还有包分析的一些技巧。看完之后其实外国人写的程序也就是那样,并没有什么特别之处。我们先来一起看看基本的函数结

2017-05-12 09:17:43 2165

转载 NDPI的分析

简单的说,首先抓包,再从数据链路层开始解析,一直解析到传输层是TCP或是UDP或是TCP和UDP都不是,最后才到应用层,到应用层只能依靠端口,分析包的内容来提取特征码等等来判断是何种协议类型。一、     重要的数据结构1、        整个pcap包的信息struct reader_thread {  struct ndpi_detection_module_s

2017-05-12 09:16:20 2691

转载 ndpi源码分析一--几个重要的结构体

最近研究了ndpi的源代码,过程中看到关于这方面的资料很少,所以就想把自己的收获写下来分享一下,也让之后的同学有所参考。首先简单介绍一下ndpi源码中几个比较重要的结构体,这些结构体的定义一般都在ndpi_typedefs.h头文件中,有兴趣的同学可以参考。 1,ndpi_iphdr, ndpi_tcphdr,ndpi_udphdr, ndpi_ethdr(这几个是在 linux_compat

2017-05-12 09:15:30 1090

转载 协议的注册与维护——ndpi源码分析

在前面的文章中,我们对ndpi中的example做了源码分析。这一次我们将尽可能深入的了解ndpi内部的结构和运作。我们将带着下面三个目的(问题)去阅读ndpi的源代码。1、ndpi内部是怎么样注册和维护需要检测的协议呢?2、ndpi在初始化的过程中,做了怎么样的工作?3、ndpi在底层的实现中具体又是使用怎样的数据结构?注:这里限于篇幅,本文章指针对使用中的初

2017-05-12 09:14:20 1021

转载 一个开源AC算法源码分析

ps1: 本文不讲AC算法的原理及数学证明, 具体请参考这篇文章:efficient_string_matching_an_aid_to_bibliographic_search.pdfps2: 源码主页:multifast下面先从例子代码分析,如下例子代码:[cpp] view plain copy#include   

2017-05-02 10:02:51 2560

转载 字典树

一、字典树的概念Trie树,又称字典树,单词查找树或者前缀树,是一种用于快速检索的多叉树结构,如英文字母的字典树是一个26叉树,数字的字典树是一个10叉树。与二叉查找树不同,Trie树的键不是直接保存在节点中,而是由节点在树中的位置决定。一个节点的所有子孙都有相同的前缀,也就是这个节点对应的字符串,而根节点对应空字符串。一般情况下,不是所有的节点都有对应的值,只有叶子节点和部分内部节点

2017-04-28 14:20:12 640

转载 kmp算法详解

从头到尾彻底理解KMP         此文转自神的博客  http://blog.csdn.NET/v_july_v/article/details/7041827#1. 引言    本KMP原文最初写于2年多前的2011年12月,因当时初次接触KMP,思路混乱导致写也写得混乱。所以一直想找机会重新写下KMP,但苦于一直以来对KMP的理解始终不够,故才迟迟

2017-04-27 17:40:28 486

转载 字符串匹配的KMP算法

字符串匹配是计算机的基本任务之一。  举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?  许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个K就是著名科学家Donald Knuth。  这种算法不太容

2017-04-27 17:39:09 227

转载 字符串模式匹配算法——BM、Horspool、Sunday、KMP、KR、AC算法

本文内容框架:§1 Boyer-Moore算法§2 Horspool算法§3 Sunday算法§4 KMP算算法§5 KR算法§6 AC自动机§7 小结  §1 Boyer-Moore(BM)算法 Boyer-Moore算法原理 Boyer-Moore算法是一种基于后缀匹配的模式串匹配算法,后缀

2017-04-27 16:37:13 804

转载 Aho-Corasick 多模式匹配算法、AC自动机详解

Aho-Corasick算法是多模式匹配中的经典算法,目前在实际应用中较多。Aho-Corasick算法对应的数据结构是Aho-Corasick自动机,简称AC自动机。搞编程的一般都应该知道自动机FA吧,具体细分为:确定性有限状态自动机(DFA)和非确定性有限状态自动机NFA。普通的自动机不能进行多模式匹配,AC自动机增加了失败转移,转移到已经输入成功的文本的后缀,来实现。

2017-04-27 14:15:09 969

转载 inotify文件监控

转自http://blog.csdn.NET/hjhcs121/article/details/7477147inotify是什么?用它能干些什么?         通俗点说它是一个内核用于通知用户空间程序文件系统变化的系统,并且它是powerful yet simple的。inotify是Linux系统2.6.13以后内核支持的一种特性,功能是监视文件系统的变化,在监听到文件系统

2017-03-08 14:48:38 897

转载 Linux下DIR,dirent,stat等结构体详解

首先说说DIR这一结构体,以下为DIR结构体的定义:struct __dirstream      {       void *__fd;        char *__data;        int __entry_data;        char *__ptr;        int __entry_ptr;    

2017-03-08 14:47:50 267

转载 查找文件的类 struct _finddata_t结构体用法

到底如何查找文件呢?我们需要一个结构体和几个大家可能不太熟悉的函数。这些函数和结构体在的头文件中,结构体为struct _finddata_t,函数为_findfirst、_findnext和_fineclose。具体如何使用,我会慢慢讲来~        首先讲这个结构体吧~ struct _finddata_t ,这个结构体是用来存储文件各种信息的。说实话,这个结构体的具体定义代码,我

2017-03-07 14:41:29 1326

转载 CString和LPCSTR区别

类型理解  LPCTSTR类型:  L表示long指针 这是为了兼容Windows 3.1等16位操作系统遗留下来的,在win32中以及其他的32位操作系统中, long指针和near指针及far修饰符都是为了兼容的作用。没有实际意义。  P表示这是一个指针  C表示是一个常量  T表示在Win32环境中, 有一个_T宏  STR表示这个变量是一个字符串详细释义

2017-03-01 15:28:38 871

转载 ADO 动态链接数据库

ADO(ActiveX Data Objects)是基于组件的数据库编程接口,它是一个和编程语言无关的COM组件系统。下面内容转载自:http://www.vckbase.com/document/viewdoc/?id=496  讲解挺细的,部分内容有修改。 我在《VC知识库在线杂志》第十四期和第十五期上曾发表了两篇文章——“直接通过ODBC读、写Excel表格文件”和“直接通过AD

2017-02-28 17:41:37 1223

转载 _variant_t与其他数据类型的转换

转自:http://kuaixingdong.blog.hexun.com/29627840_d.html我们先看看COM所支持的一些类型的基本类:(微软提供,在comdef.h中定义)在COM中使用的标准类Class如下所示:_bstr_t:对BSTR类型进行打包,并提供有用的操作和方法;_com_error:定义抛出的error对象;_com_p

2017-02-28 14:21:08 8669

转载 VC中使用ADO操作数据库的方法(比较详细)

参考:http://blog.csdn.net/augusdi/article/details/7005597,做了部分补充和删除准备工作:(1)、引入ADO类#import "c:\program files\common files\system\ado\msado15.dll"  no_namespace rename ("EOF", "adoEOF")(2)

2017-02-28 14:19:28 705

转载 ADO接口之_RecordsetPtr

转自:http://hi.baidu.com/%CE%D2%B6%CF%C1%CB%CB%BC%C4%EE/blog/item/e057c526c6af6c29c995596e.html_RecordsetPtr智能指针,它是专门为通过记录集操作数据库而设立的指针,通过该接口可以对数据库的表内的记录、字段等进行各种操作。要搞清楚:数据库和ADO的记录集是两个不同的概念,是存在于不同

2017-02-28 14:17:09 2278

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除