自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (9)
  • 收藏
  • 关注

原创 windows socket 获取当前套接字连接状态

其中tcpInfo.State 有一下几种状态,对应的含义,在我上一篇文章中有提到。直接上干货吧,查了官方文档才解决的,用了好久时间。

2024-08-15 11:59:24 367 1

原创 获取tcp连接状态

获取本地tcp连接状态,cmd里的netstat,找到自己的tcp连接。

2024-08-14 17:39:33 150

原创 TCP的11种连接状态的含义

连接的数据传输阶段的正常状态。LAST_ACK:等待先前发送给远端TCP 的连接终止请求的确认(包括它字节的连接终止请求的确认)FIN_WAIT_1:等待远端TCP 的连接终止请求,或者等待之前发送的连接终止请求的确认。TIME_WAIT:等待足够的时间过去以确保远端TCP 接收到它的连接终止请求的确认。SYN_RCVD:发送连接请求并且接收到匹配的连接请求以后等待连接请求确认。SYN_SENT:发送完一个连接请求后等待一个匹配的连接请求。FIN_WAIT_2:等待远端TCP 的连接终止请求。

2024-08-14 13:49:58 301

原创 Winsock之select的用法

利用 select 函数来判断Socket上是否有数据可读,可写,防止程序在Socket处于阻塞模式中时,在一次 I/O 调用(如send或recv、accept等)过程中,被迫进入“锁定”状态;“锁定”状态,便可使用 FDSET 宏,将自己的套接字分配给 fdread 集合,再来调用 select。select 成功完成后,会在 fdset 结构中,返回刚好有未完成的 I/O操作的所有套接字句柄的总量。举个例子,假设我们想测试一个套接字是否“可读”,必须将自己的套接字增添到readfds集合中,

2024-08-05 19:07:42 871

原创 浅谈winsock tcp keepalive

注意:一定要给setsockopt做判断,判断他是否设置成功,我栽的坑在是否保活那个参数上,一开始我设置的是布尔类型,设置bool类型,就是setsockopt失败,改为int就成功了,大家也可以切换试试。注:这两种保活方式,在win11操作系统上一定要关闭其他网卡,我在win11家庭版上测试都不能保活,直到最后我关闭了win11的其他网卡,我去,这是操作系统的bug吧。// 在tcp通道空闲1000毫秒后, 开始发送心跳包检测。第二种,据说是在win10之前用这种方式,但是win10之后貌似也生效。

2024-08-03 15:00:30 381

原创 C++基础知识点总结

内存,关键字和函数、类、对象、设计模式、语言相关、语言特性、整理了一份文档在(https://download.csdn.net/download/czj01288/88958020?spm=1001.2014.3001.5503)对于学习面试有帮助。

2024-03-18 10:31:15 201

原创 设计模式六大原则

如果两个类不直接通信,两个类就不应当直接发生相互作用,如果一个类要调用另一个 类的方法,需要用第三个类转发这个调用。在父类出现的地方,子类可以替换,也就是说在父类出现的地方替换为子类,程序的行为不会放生变化。每个接口不存在子类用不到却必须要实现的方法,如果不然就要把接口拆分,使用多个隔离的接口。抽象不应该依赖细节,细节要依赖抽象。即针对接口编程,不要针对实现编程。对扩展开放,对修改关闭,面对需求,增加代码,而不是修改代码。一个类只做一件事,修改他改变的方法只有一种途径。4.迪米特法则(最少知道原则)

2024-03-13 14:37:36 209

原创 qt信号槽的最后一个参数

要信号成功连接槽或者另一个信号,必须保证signal和slot/signal的参数具有相同的顺序和相同的类型或者信号的参数比连接的槽函数(或者信号)的参数多,多余的参数会被忽略掉,如果连接错误,编译输出会给出警告。槽函数和普通的C++成员函数几乎一样,可以是虚函数,可以被重载,也可以是公有、保护或者私有的,也可以直接被其他成员函数调用,唯一与一般的成员函数不同的地方是可以与信号连接一起。注意同一个信号和同一个槽连接n次,每次信号被抛出后,槽函数就执行n次!多个信号可以连接同一个槽。一个信号可以连接多个槽。

2022-12-02 10:22:49 238 1

原创 Qt 事件实现原理

qt事件实现原理

2022-11-16 14:54:12 202

原创 Linux shell脚本 sudo自动输入密码

linux shell脚本 suo自动输入密码

2022-09-13 14:08:48 1106

转载 gcc参数的意义

但如果库文件没放在这三个目录里,而是放在其他目录里,这时我们只用-l参数的话,链接还是会出错,出错信息大概是:“/usr/bin/ld: cannot find -lxxx”,也就是链接程序ld在那3个目录里找不到libxxx.so,这时另外一个参数-L就派上用场了,比如常用的X11的库,它放在/usr/X11R6/lib目录下,我们编译时就要用-L /usr/X11R6/lib -lX11参数,-L参数跟着的是库文件所在的目录名。------用./a.out执行文件。

2022-08-24 17:45:48 669

原创 gcc编译和g++编译的区别

也就是说,对于 .c 文件来说,gcc 指令会以 C 语言代码对待,而 g++ 指令则会以 C++ 代码对待。在编译时,如果使用g++指令,则无论目标文件的后缀名是什么,该指令都一律按照编译C++代码的方式编译该文件。因此,对于C语言程序的编译,我们应该使用gcc指令,而编译C++程序则应该使用g++指令。在实际使用中,我们通常习惯使用gcc指令编译C语言程序,用g++指令编译C++程序。此外,对于编译执行C++程序,使用gcc和g++也是有区别的。

2022-08-24 15:57:25 692

原创 VS静态编译C/C++解决程序丢失 VCRUNTIME140.dll

VS静态编译C/C++解决程序丢失 VCRUNTIME140.dll1VS静态编译C/C++解决程序丢失 VCRUNTIME140.dll2VS静态编译C/C++解决程序丢失 VCRUNTIME140.dll3VS静态编译C/C++解决程序丢失 VCRUNTIME140.dll4VS静态编译C/C++解决程序丢失 VCRUNTIME140.dll5有时在自己电脑上写完一个程序,编译运行后一切正常,但是把这个程序放到没有装VS或没有装VC++运行库的电脑上便会弹出一个MessageBox:丢失 VCRUNT

2021-07-06 17:54:20 2169

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

static_cast任何具有明确定义的类型转换,只要不包含底层const,都可以使用static_const。在编译期强制转换。顶层const:表示指针本身是个常量。如:int *const p;底层const:表示指针所指的对象是一个常量。如:int const *p;该运算符没有运行时类型检查来保证转换的安全性。a、用于类层次结构中基类和子类之间指针或引用的转换。进行上行转换(把子类的指针或引用转换成基类表示)是安全的;进行下行转换(把基类指针或引用转换成子类表示)时,由于没有动态类..

2021-05-06 16:11:00 790

原创 CEF3 75 之后版本 Flash 不能自动播放的问题

CefRefPtr ClientHandler::GetRequestContext(){if (!shared_request_context.get()) {shared_request_context = CefRequestContext::CreateContext(CefRequestContext::GetGlobalContext(), new ClientRequestContextHandler2);}CefString error;CefRefPtr<CefValu

2021-04-10 14:19:16 374

原创 配置iptables,把80端口转到8080

在Linux的下面部署了tomcat,为了安全我们使用非root用户进行启动,但是在域名绑定时无法直接访问80端口号。众所周知,在unix下,非root用户不能监听1024以上的端口号,这个tomcat服务器就没办法绑定在80端口下。所以这里需要使用linux的端口转发机制,把到80端口的服务请求都转到8080端口上。在root账户下面运行一下命令:1iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080注

2021-04-07 17:01:29 1167

原创 虚继承

在多重继承(multiple inheritance)中, 可能出现多个基类继承自同一个基类, 即"菱形继承", 会导致最顶层的基类, 被复制多次;可以采用虚继承(virtual inheritance)的方式, 使派生类(derived class)只保留最顶层基类的一个副本.virtual, 即需要vptr(virtual table pointer), 即虚表指针, 额外占用4个字节;...

2021-03-12 14:29:02 102

原创 sql优化

对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引:.尝试下面的技巧以避免优化器错选了表扫描:· 使用ANALYZE TABLE tbl_name为扫描的表更新关键字分布。· 对扫描的表使用FORCE INDEX告知MySQL,相对于使用给定的索引表扫描将非常耗时。 SELECT * FROM t1, t2 FORCE INDEX (index_for_column) WHERE t1.col_name=t2.

2021-03-08 13:49:54 432

原创 Android 通过adb 获取当前activity信息

8.1之前window 通过adb shell dumpsys activity | findstr “mFocus”Linux 通过adb shell dumpsys activity | grep “mFocus”8.1window 通过adb shell dumpsys activity | findstr “mResume”Linux 通过adb shell dumpsys activity | grep “mResume”...

2021-02-24 10:00:43 473

原创 linux下使用gdb定位内存泄漏

1.编译g++ -g xxx.cpp -o xxx2.ulimit设置ulimit -c unlimited3.gdb调试gdb ./xxx corerun

2021-02-19 09:01:46 510

原创 vector和map实现存储自定义类型

1.如果要用vector存储自定义类型数据,需要类重载运算符。如下class A{public: A(){} ~A(){} friend bool operator==(const A& a1, const A& a2) { return (a1.a==a2.a)?true:false; } // or /* bool operator==(const Convertable& other) { return x==other.x;

2021-02-18 14:12:47 287

C++应用程序内存结构

BSS段BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。数据段数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。数据段属于静态内存分配。代码段:代码段(code segment/text segment)通常是指用来存放程序执行代码的一块内存区域。这部分区域的大小在程序运行前就已经确定,并且内存区域通常属于只读, 某些架构也允许

2020-12-31 13:21:37 175

原创 STL中各容器的数据结构

1. vector(向量)STL中标准而安全的数组,只可以在vector的“前面”增加数据。2. deque(双端队列double-ended queue)在功能上与vector相类似,但是可以从前后端向其中添加数据3. list(列表)list数据结构是双向链表游标以此只可以移动一步。如果对链表链表已经很熟悉,那么STL中的list其实就是一个双向链表(每个节点有指向前驱和指向后继的两个指针)。4. set(集合)set数据结构是二叉树(红黑树)包含了进过排序了的数据,这些数据的值(va

2020-12-23 16:25:52 598

原创 c++多线程编程整理(c++11)

C++11中std命名空间将Boost库中的Thread加入,Boost的多线程从准标准变为标准。头文件为#include,通过std::thread应用,使用过程中要注意join()和detach()的区别。数据同步的时候使用mutex,记得包含#include。1. 普通函数多线程调用无参函数#include <thread>#include <iostream>void print(){ std::cout<<"这是一个测试多线程的程序!!"<

2020-12-15 17:20:18 136

原创 Android内存泄漏

1.单例造成的内存泄漏2.非静态内部类造成的内存泄漏3.系统服务注册未取消造成的内存泄漏4.全局集合类造成的内存泄漏5.资源未关闭的内存泄漏6.WebView 造成的内存泄漏

2020-12-07 15:29:10 68

原创 python字符串导入类

// 类的路径path = “%s.test”%t// 获取文件cls = import(path)// 根据文件导入文件中的类t = getattr(cls, ‘t’)// 实例化类t1 = t()

2020-09-28 16:31:47 396

转载 centos7 查找jdk 安装路径

2020-09-10 15:45:19 753

原创 python运算符优先级

2020-08-07 16:27:17 214

原创 Appium API滑动和拖拽

滑动和拖拽我们在做自动化测试的时候,有些按钮是需要滑动几次屏幕后才会出现,此时,我们需要使用代码来模拟手指的滑动,也就是接下来要学的滑动和拖拽了。swipe滑动事件从一个坐标位置滑动到另一个坐标位置,只能是两个点之间的滑动。方法:driver.swipe(start_x, start_y, end_x, end_y, duration=None):参数分别是起点坐标的x,y和终点坐标的x,y,以及滑动时间,滑动事件的单位是ms。实例1: 模拟手指从(100,2000),滑动到(100,1000

2020-08-04 14:57:16 643

转载 Python切片详解

利用python解决问题的过程中,经常会遇到从某个对象中抽取部分值的情况。“切片”操作正是专门用于实现这一目标的有力武器。理论上,只要条件表达式得当,可以通过单次或多次切片操作实现任意目标值切取。切片操作的基本语法比较简单,但如果不彻底搞清楚内在逻辑,也极容易产生错误,而且这种错误有时隐蔽得较深,难以察觉。本文通过详细例子总结归纳了切片操作的各种情形,下文均以list类型作为实验对象,其结论可推广至其他可切片对象。一、 Python可切片对象的索引方式包括:正索引和负索引两部分,如下图所示,以li..

2020-07-23 10:02:11 453

转载 20款测试工具库

众所周知,优秀的自动化测试工具可以让用户在采用DevOps或Agile的过程中,为团队的自动化提供良好的支持。因此在面对用户需要以更快的速度、交付出更高质量的软件产品时,许多企业自然会通过搜寻各种自动化测试工具,以满足他们在持续集成和DevOps方法论方面的需求。本文向您介绍20种自动化测试工具与库,其中包括一些对于自动化测试、单元测试、以及各种其他类型测试需求非常实用的工具。希望它们能够对您的项目有所帮助。1.SeleniumSelenium由如下三个工具组成:Selenium WebDriver

2020-06-10 16:46:32 1019

原创 java执行python脚本

public static void ExcPython(){      String pySubtitle = “E:/video/video/subtitle.py”;  ProcessBuilder pb = new ProcessBuilder(“python”, pySubtitle);    pb.inheritIO();  try {&nb

2020-05-20 17:02:29 182 1

转载 windows 安装ninja

ninja连接:https://ninja-build.org/https://github.com/ninja-build/ninja下载安装包:https://github.com/ninja-build/ninja/releasesgithub的安装指导打开HACKING.md:https://github.com/ninja-build/ninja/blob/master/HA...

2019-10-23 14:21:03 318

原创 python的排序

sort 与 sorted 区别:sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。sorted(iterable, cmp=None, key=None, reverse=False)参数...

2019-08-16 15:03:18 302

原创 python字符串大小写问题(力扣题库-检测字符串是否合法问题)

字符串.isalnum() 所有字符都是数字或者字母,为真返回 Ture,否则返回 False。字符串.isalpha() 所有字符都是字母,为真返回 Ture,否则返回 False。字符串.isdigit() 所有字符都是数字,为真返回 Ture,否则返回 False。字符串.islower() 所有字符都是小写,为真返回 Ture,否则返回 False。字符串.is...

2019-07-01 10:18:27 395

原创 linux下so动态库的编译以及使用

1.生成jni文件javah Test(java文件)2.首先编译.c文件生成.o中间文件gcc -fPIC -D_REENTRANT jdk路径/include -I jdk路径/include/linux -c test.c3.用.o文件编译so库 gcc -shared -o libtest.so test.o 如果有依赖其他.o 在test.o后加依赖的.o文件4.编写java调...

2019-06-26 11:09:35 851

原创 初学Python之基础知识

1.import, from…import,import…as的区别在python中import或者from…import是用来导入相应的模块。举个例子:import numpyprint(numpy.random.rand(0,100))上面的例子是导入了整个的numpy包,然后调用了他里面的方法random另:import numpy as npprint(np.random....

2018-11-13 15:03:31 364 2

libusb源码,libusb是一个跨平台的用户空间USB库

libusb是一个跨平台的用户空间USB库,允许用户编写基于USB的应用程序,而无需了解底层的USB协议。它提供了一个可移植的、抽象的接口来访问USB设备,支持多个操作系统,包括Linux、macOS、Windows和其他类Unix系统。通过使用libusb,开发人员可以以设备为中心,而不是以系统为中心来开发USB应用程序,从而获得更好的可移植性和开发效率。libusb还包括用于设备描述符解析、传输、同步、异步传输、控制传输等功能的API。

2024-05-22

Selenium代码,Selenium是广泛使用的模拟浏览器运行的库

Selenium是广泛使用的模拟浏览器运行的库,它是一个用于Web应用程序测试的工具。

2024-05-22

appium代码,Appium是开源的移动端自动化测试框架

Appium是一个开源测试自动化框架,可用于原生,混合和移动Web应用程序测试。它使用WebDriver协议驱动IOS,Android和Windows应用程序。

2024-05-22

cef源码CEF全称Chromium Embedded Framework

CEF全称Chromium Embedded Framework,是一个基于Google Chromium 的开源项目

2024-05-22

proj4源码 地图投影的表达以及转换

Proj4是一个免费的GIS工具,它专注于地图投影的表达以及转换。采用一种非常简单明了的投影表达--PROJ4

2024-05-22

gdal源码 GDAL是一个开源的地理空间数据处理库

GDAL(Geospatial Data Abstraction Library)是一个开源的地理空间数据处理库,提供了一系列用于读取、写入和处理各种地理空间数据格式的功能。它是一个跨平台的库,可以在多种操作系统上使用,包括 Windows、Linux 和 macOS。

2024-05-22

GEOS 是一个用于处理几何对象的强大 C++ 库

GEOS 是一个用于处理几何对象的强大 C++ 库,支持多种操作,如构造、检查、计算、转换等。该项目最初是为了支持 PostgreSQL/PostGIS 数据库而创建的,但现在已经被广泛应用于各种地理空间应用程序中。

2024-05-22

Skia源码skia 一个强大的2D图形渲染库Skia 是一个开源的2D图形处理

skia 一个强大的2D图形渲染库。Skia 是一个开源的2D图形处理。由 Google 开发并维护

2024-05-22

视频剪辑,可在指定位置,指定时间增加字幕,增加图片,python代码

视频剪辑软件,可在指定位置,指定时间增加字幕,增加图片

2024-05-22

c++面试基础知识点,基础知识点

资源分为七个模块 1.编译内存 2.关键字库函数 3.类相关 4.面向对象 5.设计模式 6.语言对比 7.语言特性 有你所有不知道的点

2024-03-13

超轻量级中文ocr,支持竖排文字识别, 支持ncnn、mnn、tnn推理 ( dbnet(1.8M) + crnn(2.5M)

超轻量级中文ocr,支持竖排文字识别, 支持ncnn、mnn、tnn推理 ( dbnet(1.8M) + crnn(2.5M)

2024-03-13

c语言操作文件代码打开文件

c语言文件读写操作代码

2024-03-13

OnLineMap.zip

程序实现了qgis加载在线地图,天地图、高德在线影像地图,以及实现了影像地图(tiff)的下载。

2021-10-11

cinatra-master.zip

cinatra-master.zip

2021-07-30

cef_binary_87.1.14+ga29e9a3+chromium-87.0.4280.141_windows32.zip

手动编译,花了一周时间编译的,支持flv,mp3,mp4

2021-04-20

netty-test.zip

这是一个netty推送服务器使用protobuf推送图片的demo,研究推图服务器时弄的,希望能帮到大家

2020-08-03

Inspect.7z

pywinauto的元素找寻工具inspect,好用,实用比别人下载的分要低,工具是一样的,我花大价钱的分下载的,只为别人不用那么多分去下

2020-06-17

Tacotron2源码

tacotron2源码,文本转语音,很好的资源,调试通过可用

2018-10-11

c++客户端和java(Netty)服务器端tcp通讯

基于tcp通讯,涉及java的netty服务器的推送功能和c++socket的封装以及protobuf在java和c++中的使用。

2016-02-23

VC++模拟钢琴发的似懂非懂是

这是老外写的一个程序,挺不错的,分享给大家

2010-02-10

shutcomputer

这个程序实现了电脑的关闭、重启、注销功能。

2009-04-04

空空如也

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

TA关注的人

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