自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Think88666的博客

热爱生活

  • 博客(37)
  • 资源 (11)
  • 收藏
  • 关注

原创 学习笔记——C++实现ARP欺骗

以下代码大体上是没有问题的,可以根据自己的一些需求进行修改!谢谢指正错误在课设期间,从网上学习了简单的实现ARP欺骗ARP欺骗的原理很简单:通过不断的向目标发送ARP包,致使目标主机的ARP缓存表中正确的IP映射的是错误的MAC地址在书上的介绍中,采用了WinPcap的开发包,这样很方便的对网卡进行操作所以,首先需要安装winpacp,并下载开发者包https://www......

2019-01-31 11:14:27 2508 1

转载 看完后,搞懂ARP的工作原理,其实并不难(好文)

原址本期,我就来解答一下关于ARP的工作原理吧! 思路1、思考ARP到底是干嘛的? 为什么要有它?why?  2、掌握ARP的工作原理。技术人,要掌握一种技术,绝对离不开以上两点基本思路,带着这两个思路去学习新技术,你绝对是不可能学不会的。再笨,你也会学得很深刻的。甚至,你还可以有更多的思路,比如,可不可以没有它? 有它?跟没有它的情况又是什么样的?等等。 1、ARP到...

2019-01-30 15:25:58 762

原创 error LNK2001: 无法解析的外部符号 __imp__htonl@4(编程解决方法)

正在编译...1>Ipv4IPv6traceroutesrc.cpp1>d:\研究生\c++\study\test\test\ipv4ipv6traceroutesrc.cpp(461) : warning C4267: “参数”: 从“size_t”转换到“DWORD”,可能丢失数据1>d:\研究生\c++\study\test\test\ipv4ipv6tracerou......

2019-01-30 14:39:23 21272 1

原创 QT 环境下编写 BOOST ASIO程序

Asio是一个跨平台的、主要用于网络和其他一些底层输入/输出编程的C++库,一般和Boost库一起使用,也可以独立使用。ASIO有两个版本,一个必须依赖BOOST,一个是不需要依赖Boost的,具体原因以及区别详见:https://think-async.com/Asio/AsioAndBoostAsio.html网站提供了不依赖Boost库的版本。单独使用asio很简单,直接引用......

2019-01-24 22:22:17 1808

转载 MSVC 版本号对应(有点坑)

MSVC++14.0_MSC_VER== 1900 (Visual Studio 2015) MSVC++12.0_MSC_VER== 1800 (Visual Studio 2013) MSVC++ 11.0_MSC_VER== 1700 (Visual Studio 2012) MSVC++ 10.0_MSC_VER== 1600 (Vis...

2019-01-24 16:10:32 15103 4

原创 update和repaint的区别

以下参考自官方文档:repaint:调用repaint函数会立刻执行重绘,某些场景是需要这样做的比如动画等。update:推荐使用该函数,其原因是该函数不会立即执行重绘,而是等到线程重新回到消息循环时再执行重绘,相比于repaint立即重绘函数而言,调用update函数时,会允许Qt尽量的优化速度以及闪烁的问题。 ...

2019-01-23 22:31:32 1165

转载 std::ref

首先,&是类型说明符,而std::ref是一个函数,返回std::reference_wrapper(类似于指针)。 为什么需要std::ref?(std::cref类似)主要是考虑到c++11中的函数式编程,例如:std::bind。 示例:#include <iostream>#include <functional> void ...

2019-01-22 22:52:34 310

原创 c++ 实现基于stl的信号量

在stl中并没有提供信号量,但是可以很容易的通过stl的中互斥量和条件变量来模拟实现信号量。类Semaphore中的acquire方法是获取信号,当总数不足时,则阻塞等待,直到信号被释放。release方法则是释放信号。具体的代码如下:#include <iostream>#include <mutex>#include <condition_v...

2019-01-22 22:29:09 10920

转载 转 vim 卡死

1、问题:vim 卡住 死机2、原因:使用vim时,会因为不小心按了Ctrl + s后,会发现不能输入任何字符,类似死机;这并不是Linux死机,或者vim卡住,而只是按了Ctrl + s后,vim停止向终端输出。3、解决方法:退出这种状态,按下Ctrl + q ...

2019-01-22 16:57:55 420

原创 C++中cout和cerr的区别?

之前一直在用,但就是没在意两者到底有啥却别,今天又想到这个问题,总结下吧(以下的内容均是本人从网上查阅资料看来整理的,暂时还没有查阅官方资料,不保证准确,欢迎讨论)其实大家平常常会用的主要有三个:cout、cerr、clog,首先简单介绍下三者。这三者在C++中都是标准IO库中提供的输出工具(至于有关的重载问题在此不讨论):cout:写到标准输出的ostream对象;cerr:输出到......

2019-01-22 13:50:03 763

转载 Qt信号量QSemaphore

 Qt中的信号量是由QSemaphore类提供的,信号量可以理解为对互斥量功能的扩展,互斥量只能锁定一次而信号量可以获取多次,它可以用来保护一定数量的同种资源。acquire()函数用于获取n个资源,当没有足够的资源时调用者将被阻塞直到有足够的可用资源。release(n)函数用于释放n个资源。  下面通过一个典型用例:生产者和消费者,来实现这二者之间的同步。整个工程就一个main.cpp,文...

2019-01-22 13:11:46 576

转载 STL线程库简介

 STL线程库的前身是boost::thread,在C++ 11标准化后便正式归纳入了stl库,通过它我们可以很容易实现跨平台的线程管理。 线程管理 在std::thread库中,一个线程用的是一个thread对象表示,当创建一个thread对象时即创建一个线程,一个简单的示例如下:    #include <iostream>    #include &lt...

2019-01-21 22:55:45 593

原创 C++ 并发编程,std::unique_lock与std::lock_guard区别示例

背景平时看代码时,也会使用到std::lock_guard,但是std::unique_lock用的比较少。在看并发编程,这里总结一下。方便后续使用。std::unique_lock也可以提供自动加锁、解锁功能,比std::lock_guard更加灵活。std::lock_guardstd::lock_guard是RAII模板类的简单实现,功能简单。1.std::lock_g......

2019-01-21 22:52:01 239

原创 unlock of unowned mutex(stl::mutex)

今天在使用stl的mutex过程中出现了异常,初步研究是由于mutex的加锁和解锁在分别在不同线程中执行所导致。所以,对于mutex而言,加锁和解锁都要在同一线程中,而不应该是一个线程加锁,另一个去解锁。官方文档的解释:对于lock: Blocks the calling thread until the thread obtains ownership of t...

2019-01-21 22:30:35 11788 1

原创 QWaitCondition 的正确使用方法

Qt中的QWaitCondition和QMutex的关系如同stl中的condition_variable和mutex的关系几乎是一样的。在网上看到了一篇博文写的不错,故转载了。简单用法QWaitCondition 用于多线程的同步,一个线程调用QWaitCondition::wait() 阻塞等待,直到另一个线程调用QWaitCondition::wake() 唤醒才继续往下执行。......

2019-01-21 22:12:45 552

原创 重载自增自减运算符

class Test{public: int val; Test(int val){ this->val = val; } Test(const Test&copy){ this->val = copy.val; } //前置++ Test& operator ++(){ ...

2019-01-21 21:57:29 317

原创 多线程同步主界面的时候很卡,解决思路

有时候我们使用单线程的界面程序,主线程既要负责响应用户,又要负责处理其他任务,导致界面很卡,用户体验极差!有时候我们使用多线程来处理这个问题的时候,也会很卡,为什么呢?因为,当有多个线程同时同步主线程的时候,举个例子:比如多个线程同时同步多个信息到主线程,让界面显示出来。这时候主线程忙于应付其他线程,而无法响应用户,这又与单线程何异呢?这里提供了一些处理的思路。实际情况下,一般主线...

2019-01-20 21:59:36 11452

原创 使用moveToThread时的内存释放以及注意事项

在Qt中,使用线程主要有两种方式。1、自定义线程类,继承自QThread,并重写run方法即可。该方法就不再阐述了。2、就是推荐使用的方法。示例代码如下:1、自定义Worker类,将线程中的逻辑在该类中以槽函数的方式实现:Worker.h#ifndef WORKER_H#define WORKER_H#include <QObject>class W...

2019-01-17 21:01:27 16221

原创 QT QPointer类

QPointer类是一个模板类,是为了QObject提供的一种监视指针。QPointer模板类类似于标准库中的weak_ptr弱引用特性。即不管理内存,仅提供监视以及访问 QPointer 指针引用的对象被销毁时候,该指针会自动指向NULL举例说明//假设Test类继承自QObjectTest* t1 = new Test;QPointer<Test> t2 = ...

2019-01-15 22:22:43 733

原创 简要总结四个智能指针

在c++标准库里主要有四个智能指针:C++四种智能指针auto_ptr、unique_ptr、shared_ptr和weak_ptr。其中auto_ptr是C++98标准化引入的;scope_ptr、shared_ptr和weak_ptr是C++11标准化才引入的(当然,早在C++03的TR1中就已经可以使用了)。我们都知道,auto_ptr虽说简单,但使用起来却到处是坑,以至于大家都不......

2019-01-15 22:05:31 1458

原创 数组名和数组名取地址的区别

以下代码会打印出什么样的日志呢?#include <stdio.h>int a[2] = {1,2};int main(){ printf("a = %p\n", a); // I printf("&a = %p\n", &a); // II printf("a + 1 = %p\n", a + 1);// I......

2019-01-15 21:31:21 334

原创 C++智能指针 weak_ptr

C++智能指针 weak_ptr  weak_ptr 是一种不控制对象生命周期的智能指针(注意), 它指向一个 shared_ptr 管理的对象. 进行该对象的内存管理的是那个强引用的 shared_ptr.而weak_ptr只是提供了对管理对象的一个访问手段.  weak_ptr 设计的目的是为配合 shared_ptr 而引入的一种智能指针来协助 shared_ptr 工作, 它只可以......

2019-01-14 22:14:27 294

原创 c++ shared_ptr使用的几点注意

先介绍一下shared_ptr.是c++为了提高指针安全性而添加的智能指针,方便了内存管理。功能非常强大,非常强大,非常强大(不单单是shared_ptr,配合week_ptr以及enable_share_from_this()以及share_from_this())!!!对于支持智能指针的c++版本编程,能用智能指针就用智能指针!智能指针的头文件是<memory>,具体用法请参考......

2019-01-14 22:02:07 1442

原创 Qt之界面实现技巧——包括任务栏不显示,自定义窗体,最大化最小化按钮等等全面总结

总结一下,在开发Qt的过程中的一些技巧!可遇而不可求。。。一、主界面1、窗口 最小化 最大化 关闭按钮、显示状态自定义 setWindowFlags(Qt::CustomizeWindowHint); setWindowFlags(Qt::WindowCloseButtonHint); //只要关闭按钮 setWindowFlags(Qt::Win......

2019-01-10 22:10:36 10109 1

原创 c++中的NULL和nullptr

由于NULL的二义性,在c++11中,出现了nullptr。所以在今后写代码的时候,空指针尽量用nullptr表示吧,原因如下:#include <iostream>using namespace std;void test(int a){ cout<<"int"<<endl;}void test(int *a){ cout&lt...

2019-01-10 21:43:53 10133

原创 【C++】 四种强制类型转换

总 结  去const属性用const_cast。  基本类型转换用static_cast。  多态类之间的类型转换用daynamic_cast。  不同类型的指针类型转换用reinterpreter_cast。static_cast任何具有明确定义的类型转换,只要不包含底层const,都可以使用static_cast;注:顶层cons......

2019-01-10 17:30:57 318

原创 根据vld打印的信息查找内存泄露代码

通过vld来查找所编写的qt代码中内存泄露的代码位置非常简单。具体安装的配置的方法网上一搜一大堆,我在此就不讲了。当出现内存泄露的时候,vld的打印信息如下:其中圈起来的地方,就包括了内存泄露的代码所在的文件以及代码所在的行数...

2019-01-10 09:54:54 9830 1

原创 用Qt实现圆角窗口

两种方法可以实现:1、通过重写paintEvent事件来绘制圆角窗口2、使用setmask方法 第一种方法,这里我们需要重写paintEvent方法,在此之前先设置窗体为 this->setAttribute(Qt::WA_TranslucentBackground);//设置窗口背景透明 this->setWindowFlags(Qt::Frame...

2019-01-09 23:02:56 2459 1

转载 Qt之窗体透明 (三种不同的方法和效果)

关于窗体透明,经常遇到,网上的资料倒不少,也不知道写的时候是否验证过,很多都不正确。。。今天就在此一一阐述!     以下各效果是利用以前写过的一个小程序作为示例进行讲解!(代码过多,贴主要部分) 正常状态效果如下:     这部分代码就不贴了(主要讨论透明效果)。 一、全透明    setWindowOpacity(0.5);    取值范围为:0....

2019-01-09 21:21:43 3019

转载 css,qss font-family常用的黑体宋体等字体中英文对照

在实现网页效果或窗体界面时,细节很重要,字体也不例外,CSS:font-family常用字体中英文对照如下:微软雅黑: Microsoft YaHei宋体:SimSun黑体:SimHei仿宋: FangSong楷体:  KaiTi隶书:LiSu幼圆:YouYuan华文细黑:STXihei华文楷体:STKaiti华文宋体:STSong华文中宋:STZhon...

2019-01-09 14:08:49 3914

原创 static函数与普通函数有什么区别

static函数与普通函数的区别:  用static修饰的函数,本限定在本源码文件中,不能被本源码文件以外的代码文件调用。而普通的函数,默认是extern的,也就是说,可以被其它代码文件调用该函数。  在函数的返回类型前加上关键字static,函数就被定义成为静态函数。普通 函数的定义和声明默认情况下是extern的,但静态函数只是在声明他的文件当中可见,不能被其他文件所用。因此定义静态函数......

2019-01-08 22:34:38 11783

原创 指向成员函数的指针

这里获取的指向成员函数的指针包括普通成员函数和静态成员函数,没有考虑虚函数。代码非常简单,聪明的你一看就懂!#include <iostream>class Base1{ int a; void print(){ std::cout<<"base1::print()"<<std::endl; } ...

2019-01-08 22:33:03 384

转载 C++ 虚函数表解析

转载一篇非常优秀的文章,想必该文章对我和大家都非常有帮助!正文:前言C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在...

2019-01-08 22:21:01 146

原创 Qt去掉最大化最小化按钮和最大化

w.setWindowFlags(w.windowFlags()&~Qt::WindowMaximizeButtonHint&~Qt::WindowMinimizeButtonHint);w.showMaximized();

2019-01-08 17:25:42 3937

原创 栈的应用(1) 括号匹配

栈的一个重要应用就是检测括号匹配,一个简单的逻辑如下(未考虑内嵌字符串的问题):遍历整个字符串或字符数组case 1:       检测到左符号(如([{等),则直接将符号压入栈中;case 2:                当检测到右符号时(如)]}等),                          若栈为空,则表达式错误;                  ...

2019-01-07 13:32:19 298

转载 C语言(复杂类型的指针)

复杂类型的指针的难点在于:函数指针返回值为函数指针时,函数指针参数为函数指针时,以下均有相关例子。例如:char (*fp)(char *,int *);定义一个名为fp的函数指针,其类型为:输入两个参数,int *型和char *型,返回参数类型为char1. int *pf(float (*a)(int));2. int (*pf(char *))[5];3. char *(*p...

2019-01-03 14:10:50 1051 1

转载 TCP的粘包现象

  看面经时,看到有面试官问TCP的粘包问题。想起来研一做购物车处理数据更新时遇到粘包问题,就总结一下吧。1 什么是粘包现象  TCP粘包是指发送方发送的若干包数据到接收方接收时粘成一包,从接收缓冲区看,后一包数据的头紧接着前一包数据的尾。2 为什么出现粘包现象  (1)发送方原因  我们知道,TCP默认会使用Nagle算法。而Nagle算法主要做两件事:1)只有上一个分组得到...

2019-01-02 22:31:16 189

PE分析工具-支持分析32位PE文件

PE分析工具(支持32位) 树状结构查看,PE结构清晰,支持查看区段二进制数据

2022-11-06

duilib入门1资源

duilib入门1资源

2022-08-14

fixtool.zip

windows 执行cmd报错、wmi报错,提示无效类,修复此类问题

2021-03-05

VC_Linux.zip

在visual studio上下载该插件实在是太慢了,这里给大家提供下载好了的。用于在windows上开发linux程序

2020-04-07

routerpassview_xpgod.zip

通过导入路由器配置的备份文件,即可获取路由器相关信息,包括ISP用户名密码、路由器密码等。

2020-02-03

Scrollbar_png.zip

duilib滚动条图片,我使用的版本的duilib滚动条无效,参考样式如下: <Default name="VScrollBar" value="button1normalimage=&quot;file='scrollbar.png' source='0,0,16,16'&quot; button1hotimage=&quot;file='scrollbar.png' source='16,0,32,16,16'&quot; button1pushedimage=&quot;file='scrollbar.png' source='32,0,48,16'&quot; button2normalimage=&quot;file='scrollbar.png' source='0,32,16,48'&quot; button2hotimage=&quot;file='scrollbar.png' source='16,32,32,48'&quot; button2pushedimage=&quot;file='scrollbar.png' source='32,32,48,48'&quo

2019-11-20

DuiDesigner.rar

DuiDesigner bug最少的版本,不用编译,运行即可。简化了程序员的大量繁琐复杂的工作。 DuiDesigner bug最少的版本,不用编译,运行即可。简化了程序员的大量繁琐复杂的工作。

2019-11-14

VC AssistantX_适用VS2005.zip

能够完美适配vs2005,让您摆脱VS2005编程不便,轻松搞定vs2005环境下的编程,同时还可以兼容vs2008以及vs2010等版本。

2019-07-10

visual assist破解版附带教程2010/2012/2015

visual assist破解版附带教程2010/2012/2015

2019-04-24

Effective+C++中文版(第三版)

Effective+C++中文版(第三版) Effective+C++中文版(第三版)

2019-04-19

tcp/udp高并发和高吐吞性能测试工具

只需要简单地设置一下就能对tcp/udp服务进行高并发和高吐吞的性能测试,并通过图形化的方式反映测试结果.

2019-04-09

下雪桌面程序,基于c++开发

一个下雪的桌面程序,非常漂亮,我们可以设置是否开机启动,也可以设置雪的大小.

2019-01-31

简易版ftp服务器程序

ftp服务器程序ftp服务器程序ftp服务器程序ftp服务器程序ftp服务器程序ftp服务器程序

2018-06-13

空空如也

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

TA关注的人

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