自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

读研功夫

工作记录、备忘、交流学习

  • 博客(70)
  • 收藏
  • 关注

转载 记一次解决glibc库版本兼容问题

记一次解决glibc库版本兼容问题问题背景:本地编译的动态共享库(.so)在另外一台服务器上编译链接报错报错信息如下:/lib64/libc.so.6: version ‘GLIBC_2.14’ not found(require ./libsmscrypt.so)symbol memcpy, version GLIBC_2.14 not defined in file libc.so.6 with link time reference原因分析:根据报错信息可以看出so库中memcpy函数使

2021-10-13 15:51:47 11156

原创 android网络相关权限

<!-- 开启网络访问权限 --> <uses-permission android:name="android.permission.INTERNET"> </uses-permission> <!-- 允许访问网络状态的权限 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <!--...

2020-11-23 13:04:30 13393 1

原创 网络几种常见错误可能原因

几种常见错误原因可能出现原因103 ECONNABORTED Software caused connection 软件导致连接中断RST 出现情况 https://my.oschina.net/costaxu/blog/127394该错误被描述为“connection reset by peer”,即“对方复位连接”,这种情况一般发生在服务进程较客户进程提前终止。当服务进程终止时会向客户 TCP 发送 FIN 分节,客户 TCP 回应 ACK,服务 TCP 将转入 FIN_WAIT2 状态。此时

2020-06-28 18:06:46 1555

原创 libev -- ev_timer

ev_timer结构体:typedef struct ev_timer{ int active; /* 是否已经激活 */ int pending; /* 是否事件易产生,需要执行回调 */ int priority; /* 事件优先级 */ void *data; /* rw */ void (*cb)(struct ev_loop *loop, struct ev_ti...

2020-04-23 19:40:55 984

原创 Android解析ClassLoader

这里写自定义目录标题好文记录欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入好文...

2020-04-22 14:35:38 115

转载 Class.forName的作用以及new和newInstance生成对象的区别

Class.forName(xxx.xx.xx) 返回的是一个类首先你要明白在java里面任何class都要装载在虚拟机上才能运行。这句话就是装载类用的(和new 不一样,要分清楚)。至于什么时候用,你可以考虑一下这个问题,给你一个字符串变量,它代表一个类的包名和类名,你怎么实例化它?只有你提到的这个方法了,不过要再加一点。A a = (A)Class.forName(“pacage.A”)...

2020-01-20 15:43:19 431 1

转载 method.invoke()和invoke()简单理解

首先说下作用,method.invoke(Object obj,Object args[])的作用就是调用method类代表的方法,其中obj是对象名,args是传入method方法的参数举个例子:如果接口中没有close方法,但是实现类中提供了close,那么就可以用反射来处理,调用实现类的close方法首先说下作用,method.invoke(Object obj,Object args[...

2020-01-13 11:52:42 7012

原创 linux下gethostbyname工作原理

既然这两个函数能够转换 IP 和域名,那么,它们就会去访问DNS服务器吗?如果真的要去访问,网络不通的情况下,它们又怎么办呢?带着这些疑问,我在网上查了一下,并根据提示,做了一下试验,简单总结了一下:gethostbyname(域名->IP)、gethostbyaddr(IP->域名)在解析的时候,系统默认会先到 /etc/hosts 文件中去寻找匹配信息,然后再到DNS服务器去解析...

2019-10-24 11:37:48 1665

转载 libev的使用——结合Socket编程

之前自己学过一些libev编程的基础,这次写压测刚好用上了,才算真正动手写了些东西,在这里做一些总结。写这篇文章是为了用浅显易懂的语言帮助大家做一个入门,我自己也是入门程序媛一只,所以有理解错误的地方欢迎指出。首先推荐几个我认为学习libev比较好的blog,最后一个地址是官方文档,给了我很多帮助:http://vimersu.win/blog/2014/03/06/libev-study/...

2019-10-21 15:49:57 246

转载 libev学习一

1.libev简介Libev是一个event loop:向libev注册感兴趣的events,比如Socket可读事件,libev会对所注册的事件的源进行管理,并在事件发生时触发相应的程序。2.原理通过event watcher来注册事件,watcher是一个结果体。libev通过分配和注册watcher对不同类型的事件进行监听。不同事件类型的watcher又对应不同的数据类型,watch...

2019-10-21 15:48:48 320

原创 libevent源码安装

Linux下源代码安装软件一般包括几个步骤:自动生成配置脚本(autogen),配置(configure),编译(make),安装(make install)。2、libevent在 github 上git clone libevent 源码或者在 libevent 官网上下载后解压得到源码。首先安装前需要运行脚本 ./autogen.sh执行 ./configure --pref...

2019-10-20 23:31:42 542

原创 网络编程基础知识记录

1、 EAGAIN- 在非阻塞模式下,write或read返回-1,errno为EAGAIN,表示相应的操作还没执行完成。- ****在阻塞模式下,设置SO_RCVTIMEO和SO_SNDTIMEO会导致read/write函数返回EAGAIN。****O_NODELAY会导致write接口返回EAGAIN,的确,如果设置了O_NODELAY而当前不可写,那么write接口会设置errno...

2019-10-17 23:37:41 144

原创 常用DNS解析服务器(IPv4/IPv6)

国内IPv4公共DNS服务器地址114DNS公众版 主用DNS:114.114.114.114 备用DNS:114.114.115.115 (纯净无劫持,速度还不错,多网通用)114DNS安全版 主用DNS:114.114.114.119 备用DNS:114.114.115.119 (拦截部分钓鱼木马网站,多网通用)114DNS家庭版 主用DNS:114.114.11...

2019-10-17 23:32:30 17586

转载 JavaVM和JNIEnv

JavaVM和JNIEnv1、JavaVM接口第一种方式,在加载动态链接库的时候,JVM会调用JNI_OnLoad(JavaVM* jvm, void* reserved)(如果定义了该函数)。第一个参数会传入JavaVM指针。一般都在这个时候保存一个static的JavaVM *jvm,这个jvm指针在进程内是可以放心共享的。第二种方式,在native code中调用JNI_CreateJ...

2019-09-23 16:51:05 1058

原创 IP、UDP、TCP协议格式(待完善)

文章目录一、UDP与IP关联1、整体封装格式2、UDP与IP分组3、UDP报文格式UDP协议和TCP协议同位于传输层,介于网络层(IP)和应用层之间:UDP数据部分为应用层报文,而UDP报文在IP中承载。如下图:一、UDP与IP关联1、整体封装格式在接收时当IP层根据协议字段把UDP报文向上传送到UDP模块后,UDP模块再根据端口号将数据发送到相应的进程中,以此实现进程到进程间的通信。...

2019-09-19 11:22:02 144

原创 GDB调试

编译时加上一定加上 -g选项eg.gcc main.c -o main -g开启gdbgdb main[图 ]查看程序命令 : l // 对应list的简写显示某函数上下文内容: l print // 显示函数print上下文内容断点设置断点:b 10 // 在第10行设置一个断点 ,为是break 10的简写形式b print // 在pri...

2019-09-18 19:32:32 607

原创 wrieshark https(SSL/TLS)解密

如果是chrome浏览器的数据流 直接配置”SSLKEYLOGFILE“就可以解密了。实现过程:1.配置系统环境变量变量名:SSLKEYLOGFILE变量值:随意指定一个存储路径,以便chrome输出keylog2.配置Wireshark填入你在系统变量中指定的keylog存储路径,以便wireshark访问keylog中的key 从而解密https(ssl)原理解析:当你配置...

2019-09-18 12:29:32 759

原创 常用命令常见使用方式(持续补充)

前言 对一些常见命令的常见使用方式,每次使用时对参数经常记不太清楚,每次查man手册时可选项太多,在此记录个人常用到的的命令常见形式,给自己留下记录加深熟练。字符查找文件查找查看路由表Linux 系统上:route -nMAC 系统上:netstat -nr...

2019-09-17 22:21:33 105

原创 Android WiFi 以太网同时上内外网

Android WiFi 以太网同时上内外网 : https://blog.csdn.net/kangear/article/details/80547073Android策略路由:https://my.oschina.net/u/1397402/blog/736806Ubuntu 16.04 双网卡 同时上内外网: https://blog.csdn.net/kangear/article/...

2019-09-17 22:14:22 1817

转载 单例与多例对比

单例多例需要搞明白两个问题:什么是单例多例;如何产生单例多例;为什么要用单例多例什么时候用单例,什么时候用多例;什么是单例、多例:所谓单例就是所有的请求都用一个对象来处理,比如我们常用的service和dao层的对象通常都是单例的,而多例则指每个请求用一个新的对象来处理,比如action;一、单例模式和多例模式说明:1.单例模式和多例模式属于对象模式。2....

2019-09-17 20:44:10 192

原创 mbedtls安装与入门

mbedtls 安装与入门 https://blog.csdn.net/xukai871105/article/details/72795126

2019-09-17 17:10:07 1718

原创 设置apk只打包指定架构的so

问题描述Android 使用多个包含 .so 的第三方库,应用崩溃。日志显示找不到 xxx.so。问题分析现在很多第三方库都是通过aar方式引用的,里面也包含了 .so 库。这些so会被编译进apk的lib文件夹下。apk解压后可能类似下面:手机在使用这些so时,会先根据自身的CPU加载自己优先支持的架构的库,如果发现架构对应的文件夹存在,则会将该文件夹下的 so 推入 apk 安装目录...

2019-09-17 15:59:01 813

原创 HTTPS加密过程和TLS证书验证

前言大家都知道,苹果在2016年WWDC上宣布了关于应用需要强制使用HTTPS的规定。这也算是个好消息吧,虽然开发者们可能需要适配下HTTPS,但是我们的应用可算是披上一个安全的保护罩了。本篇文章就算是笔者在学习HTTPS过程中的一个记录吧。HTTPS加密过程最近重新了解了下HTTP和HTTPS: 首先二者都是网络传输协议;HTTPS在传输过程中是可以通过加密来保护数据安全的,以免用户敏感信...

2019-09-17 14:32:44 1308

原创 Android 网络权限问题

Android 在调用socket创建套接字时出错,socket: Permission denied 对应errno为13,原因https://developer.android.com/guide/topics/manifest/uses-permission-element.html在AndroidManifest.xml中添加 如下图红框中内容后解决,在此记录下...

2019-09-16 18:06:04 3448

转载 gradle providedCompile 与compile区别

Gradle compile:如果你的jar包/依赖代码 在编译的时候需要依赖,在运行的时候也需要,那么就用compile例如 :compile ‘org.springframework.boot:spring-boot-starter-websocket:1.1.6.RELEASE’Gradle providedCompile:如果你的jar包/依赖代码 仅在编译的时候需要,但是在运行...

2019-09-16 15:53:00 371

转载 java调用jni函数示例 NewStringUTF

对第三个参数 jboolean *isCopy说明如下:当从JNI函数GetStringUTFChars函数中返回得到字符串B时,如果B是原始字符串java.lang.String的一份拷贝,则isCopy 被赋值为JNI_TRUE。如果B是和原始字符串指向的是JVM中的同一份数据,则isCopy 被赋值为JNI_FALSE。当isCopy 为JNI_FALSE时,本地代码绝不能修改字...

2019-09-16 14:26:00 4228

转载 android.mk文件语法详解(转 待删减)

本文参考自 docs/ANDROID-MK.html1、Indroduction本文描述Andrid.mk编译文件的语法。Android.mk文件向Android NDK描述你的C和C++文件。2、Overview编写Android.mk是为了向编译系统描述你的源码。具体如下:该文件是一个很小的GNU Make文件,会被编译系统解析一次或多次。因此,你应该尽量精简这里定义的变量...

2019-09-11 22:17:04 868

转载 Java关键字(一)——instanceof(转)

目录1、obj 必须为引用类型,不能是基本类型2、obj 为 null3、obj 为 class 类的实例对象4、obj 为 class 接口的实现类5、obj 为 class 类的直接或间接子类6、问题7、深究原理8、instanceof 的实现策略instanceof 严格来说是Java中的一个双目运算符,用来测试一个对象是否为一个类的实例,用法为:boolean resu...

2019-09-11 14:41:56 385

转载 数字证书及CA的扫盲介绍(转)

 ★ 先说一个通俗的例子  考虑到证书体系的相关知识比较枯燥、晦涩。俺先拿一个通俗的例子来说事儿。◇ 普通的介绍信想必大伙儿都听说过介绍信的例子吧?假设 A 公司的张三先生要到 B 公司去拜访,但是 B 公司的所有人都不认识他,他咋办捏?常用的办法是带公司开的一张介绍信,在信中说:兹有张三先生前往贵公司办理业务,请给予接洽…云云。然后在信上敲上A公司的公章。张三先生到了 B 公司后,把介...

2019-09-10 11:30:16 516

转载 IPV6地址表示详解(转)

IPv6是互联网协议的第六版;最初它在IETF的 IPng选取过程中胜出时称为互联网新一代网际协议(IPng),IPv6是被正式广泛使用的第二版互联网协议。现有标准IPv4只支持大概40亿(4×109)个网络地址,而IPv6支持3.4 ×1038个,这等价于在地球上每平方英寸有4.3×1020地址(6.7×1017地址/mm2)。(IPv5不是IPv4的继承,而是实验性的面向流的数据流协议,用来...

2019-09-09 17:54:38 2771

转载 JAVA中int,string,char之间的互相转换

(1)字符串string转int:int i=Integer.parseInt(str);//使用Integer.parseInt(String str)函数,返回str所代表的int值;(2)如何将字串 String 转换成IntegerInteger integer=Integer.valueOf(str);//string转Integer对象(3)将整数 int 转换成字串 Stri...

2019-09-09 17:48:35 414

原创 后台线程

在计算机的运行过程中后台线程上面中国setDaemon(true) 表示当线程t设置为后台线程。后台线程和前台线程是配合的,只要前台线程结束,后台线程也就结束了线程的生命周期...

2019-09-06 16:02:52 114

原创 java反射与代理

import java.lang.reflect.*;java反射机制可以通过字符串去创建类的对象,并调用对象的方法java 静态代理public abstractjava 动态代理java.lang.reflect.Proxy这是java动态代理机制的主类java反射扩展-jvm加载类原理本地编译好的class加载指从硬盘加载到内存加载:从硬盘将class...

2019-09-06 01:43:50 158

转载 RuntimeException和Exception区别

1.java将所有的错误封装为一个对象,其根本父类为Throwable, Throwable有两个子类:Error和Exception。2.Error是Throwable 的子类,用于指示合理的应用程序不应该试图捕获的严重问题。大多数这样的错误都是异常条件。虽然 ThreadDeath 错误是一个“正规”的条件,但它也是 Error 的子类,因为大多数应用程序都不应该试图捕获它。在执行该方...

2019-09-05 16:27:16 184

原创 linux 下查看系统输出日志

要将linux内核的带级别控制的printk内容打印出来,在命令行 输入 dmesg -n 8 就将所有级别的信息都打印出来Linux命令:dmesg  功能说明:显示开机信息。语 法:dmesg [-cn][-s <缓冲区大小>]补充说明:kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/var/log...

2019-09-04 19:17:18 1331

原创 Android arr 包生成与依赖方式

一 概述aar包是android lib工程生成的压缩包,类似java的jar包,只不过多了各种资源文件。多个项目公用的组件或框架打成aar包,用起来会更简易且方便版本管控。二 构建aar包一般直接编译即会生成aar包;但是我在android studio 2.2.3版本测试发现这样生成的aar只有几k,明显不能作为最终的完整依赖。亲测可行的方法(android studio 2.2.3...

2019-09-03 23:18:29 536

原创 Android studio报错Module not specified

找到settings.gradle【缺图-待补上】在项目的settings.gradle 下include 上报错为 Module not specified的模块

2019-09-03 23:10:36 531

原创 有符号与无符号转换--案例getpeername的安全漏洞

unsigned到signed的隐式强制转换常常会导致程序错误与漏洞,比较著名的一个案例就是:函数getpeername的安全漏洞。2002年, 从事FreeBSD开源操作系统项目的程序员意识到,他们对getpeername函数的实现存在安全漏洞.代码的简化版本如下://void *memcpy(void *dest, void *src, size_t n);#define KSIZE...

2019-09-03 17:07:12 438

原创 各系统下基本数据类型所占空间

16位平台 最大2^16char 1个字节8位short 2个字节16位int 2个字节16位long 4个字节32位指针 2个字节16位32位平台 最大2^32char 1个字节8位short 2个字节16位int 4个字节32位long...

2019-09-03 11:35:35 349

转载 Linux下java编译运行时引用第三方jar包的方法

Linux下java编译运行时引用第三方jar包的方法1、方法java -cp 【引用的jar包】【执行的java文件】-cp 和 -classpath 一样,是指定类运行所依赖其他类的路径,通常是类库、jar包之类的。window上,jar包与jar之间用分号“;”分隔;linux上是分号“:”分隔,用一点“.”代表当前路径。2、举例(1)执行名称为Test的java文件时需要sss...

2019-09-02 11:02:53 632

空空如也

空空如也

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

TA关注的人

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