自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Useless Programmer 的专栏

走走停停, 留个纪念

  • 博客(47)
  • 资源 (4)
  • 收藏
  • 关注

原创 证书体系: CSR 解析

原文同时发布于本人个人博客: https//kutank.com/blog/cert-csr/简介CSR 全称 “证书签名请求”(Certificate Signing Request). 本文我们将来详细的学习 CSR 的知识,重点集中在 CSR 所包含的信息,及其意义。CSR 的作用:CSR 通常由想要获得 X.509 证书的实体(entity) 创建,然后提交给 CA (Certificate Authority), CA 使用它来为实体创建对应的 X.509 证书.CSR 组.

2021-10-16 23:48:25 9571

原创 WinSock I/O 模型 -- IOCP 模型

前言IOCP 全称 Input/Ouput Completion Ports,中文中翻译一般为“完成端口”,本文中我们使用 IOCP 简写.IOCP 模型是迄今为止最为复杂的一种 I/O 模型,但是同时通过使用 IOCP 我们往往可以达到最佳的系统性能. 当你的网络应用程序需要管理大量的 Socket I/O 请求时,你或许没有其他的选择.本篇文章,我们将通过一个官方的 IOCP demo 程序来介绍如何使用 IOCP. 因为其复杂性,这篇文章中我们主要介绍如何使用,不深入内部的实现,更多的详细信息

2020-11-29 01:00:12 995

原创 WinSock I/O 模型 -- OVERLAPPED I/O 模型

简介OVERLAPPED I/O 模型也是 WinSock 中常见的异步 I/O 模型,相比于我们之前提到的 Select 模型,WSAAsyncSelect 模型 和 WSAEventSelect 模型有更好的性能.为了方便描述,下文我们将称 Overlapped I/O 模型为 “重叠模型”.重叠模型的基本设计原理便是让应用程序使用一个重叠的数据结构(Overlapped),一次投递一个或多个 Winsock I/O 请求。针对那些提交的请求,在它们完成之后,应用程序可为它们提供服务使用这个

2020-11-14 01:20:20 430

原创 WinSock I/O 模型 -- WSAAsyncSelect 模型

简介WSAAsyncSelect 模型也是 WinSock 中常见的异步 I/O 模型。使用这个模型,网络应用程序通过接收以 Windows 消息为基础的网络事件通知来处理网络请求。这篇文章我们就来看看如何使用 WSAAsyncSelect api 来实现一个简单的 TCP 服务器.API 基础要使用 WSAAsyncSelect 模型,我们必须创建一个窗口, 再为该窗口对象提供一个窗口历程(WinProc). 通过适当的配置之后,当有网络请求到来的时候,windows 会将网络消息投递到我们所创

2020-11-08 21:23:21 623 2

原创 WinSock I/O 模型 -- WSAEventSelect 模型

简介WSAEventSelect 模型也是 WinSock 中最常见的异步 I/O 模型。这篇文章我们就来看看如何使用 WSAEventSelect api 来实现一个简单的 TCP 服务器.API 基础WSAEventSelectWSAEventSelect 用来把一个 SOCKET 对象和一个 WSAEVENT 对象关联起来。 lNetworkEvents 表示我们关心的 FD_XXX 网络事件. 如果关心多个 SOCKET 事件,可以使用 OR 的方式指定多个 FD_XXX 标志。int

2020-11-07 22:54:04 455

原创 WinSock I/O 模型 -- Select 模型

简介Select 模型是 WinSock 中最常见的 I/O 模型,这篇文章我们就来看看如何使用 Select api 来实现一个简单的 TCP 服务器.API 基础Select 模型依赖 WinSock API Select 来检查当前 Socket 是否可写或者可读。使用这个 API 的优点是我们不需要使用阻塞的 Socket API (recv, send) 来等待 Socket 状态准备就绪,我们可以异步的检查 Socket 的状态来进行读数据或者写数据.Select 方法的声明如下:i

2020-10-28 23:22:42 310

原创 QTcpSocket connectToHost 建立连接速度慢问题

问题场景在使用 QT 开发一个客户端 App 的时候,我们通过 QTcpSocket 与后台服务器进程通信。 后台程序使用其他语言编写。 问题: 在客户端启用之后尝试建立与后台程序的 TCP 连接的时候,发现连接速度非常慢(肉眼可见的慢)。我的客户端代码:...m_Socket = new QTcpSocket();m_RemoteHost = "0.0.0.0";m_RemotePort = 20021;m_Socket->connectToHost(m_RemoteHost, m_

2020-09-23 22:14:28 4002

翻译 Go Concurrency Patterns: Pipelines and cancellation

原文地址: https://blog.golang.org/pipelines简介Go 语言提供的并发原语使得可以很方便的构建数据流 pipeline,使用这样的 pipeline 可以高效的利用 I/O 和多 cpu 的优势. 这篇文章我们将展示如何构建并使用 pipeline.什么是 pipeline ?在 go 语言中没有正式的定义什么是 pipeline. 它只是众多并发程序类型中的一种. 非正式的说,pipeline 是一系列通过 channel 联系起来的 stage. 每个 sta.

2020-08-21 20:58:05 282

翻译 Go Concurrency Patterns: Timing out, moving on

原文地址:https://blog.golang.org/concurrency-timeouts并发变成有它自己的风格. 一个非常好的例子就是 timeout. 虽然 go 的 channel 没有直接支持 timeout 机制,但是要实现它非常容易.比如说,我们想从一个 channel ch 中接收数据,但是最多只想等待 1 秒. 我们可以这么做:创建一个 channel 作为信号 channel (signalling channel), 再创建一个 goroutine,这个 goroutin.

2020-08-20 22:10:08 223

翻译 Go Concurrency Patterns: Context

Go Concurrency Patterns: Context原文地址:https://blog.golang.org/contextIntroduction在 Go 语言实现的服务器上,我们总是使用 goroutine 来处理与客户端建立的连接, 给每个连接分配一个独立的 goroutine. 在请求的 handler 中也通常会再开启额外的 goroutine 来访问后台的各种服务,比如 数据库操作,访问 RFC 服务。 在这种情况下,一个客户端连接往往会对应一组 goroutine,这些

2020-08-20 21:21:35 217

原创 CentOS 7 防火墙命令

查看防火墙状态systemctl status firewalld如果已经开启,状态为 active如果未开启,状态为 inactive开启防火墙systemctl start firewalld关闭防火墙systemctl stop firewalld查看当前防火墙的配置firewall-cmd --list-all这里,我的机器上已经开启了 ssh 端口和 http 和 https 服务的端口开启 http 和 https 服务firewall-cmd --perm

2020-06-25 22:13:56 179

原创 CodeTank iOS App Technical Support

CodeTank iOS AppTechnical Support For AllEmail: [email protected]: +86-17782749061App ScreenShoots

2020-06-07 19:57:56 785

原创 协议簇:TCP 解析:TCP 数据传输

简介前面,我们分别介绍了 TCP 基础知识以及连接的建立和关闭,以及最重要的 Sequence Number 的概念. 本篇文章,我们来介绍一下 TCP 如何传输数据.数据传输当一个 TCP 连接建立成功之后, TCP 段便可以在这条连接上双向传输. 由于底层网络的不稳定,TCP 段可能在传输过程中出错,TCP 协议会重传这些出错的 TCP 段以确保每个段都成功的发送到了对方. 这个过程依赖于 Sequence Number 机制, TCP双方都需要维护一系列连接状态信息,以确保 Sequence N

2020-05-16 21:59:23 282

原创 协议簇:TCP 解析: Sequence Number

简介序列号(Sequence Number) 是 TCP 协议中非常重要的一个概念,以至于不得不专门来学习一下。这篇文章我们就来解开他的面纱.在 TCP 的设计中,通过TCP协议发送的每个字节都对应于一个序列号. 由于每个字节都有自己的序列号,那么每个字节都可以被对方确认接收.但是由于 TCP 使用累计确认机制,因此不需要对每个接收到的字节都发送对应的ACK,而是采用确认最后接收到的自己的...

2020-05-05 19:17:41 2613

原创 协议簇:TCP 解析: 连接断开

简介接前文 协议簇:TCP 解析: 建立连接, 我们这篇文章来看看 TCP 连接断开的过程,也就是众所周知的”四次挥手“的具体流程.断开连接通常情况MSL: Maximum Segment Lifetime.这里,我们假定 A 端为关闭连接的发起方.初始状态下,通信双方均处于连接状态.某一时刻,A 端发起断开连接请求(上层客户通过调用 TCP 的 Close 接口). 发起断开...

2020-05-05 17:36:49 244

原创 协议簇:TCP 解析: 建立连接

简介接前文 协议簇:TCP 解析: 基础, 我们这篇文章来看看 TCP 连接建立的过程,也就是众所周知的”三次握手“的具体流程.详解最普通的 TCP 握手流程如下图:下面描述中,序列号对应于上图中的行号.初始状态时,TCP A 处于连接关闭状态, TCP B 处于监听状态. 也就是通常所说的 A 时 TCP 客户段,B 是服务端.A 发送 SYN 给 B, 并附有 SEQ, 请求建...

2020-04-25 20:36:03 512

原创 协议簇:TCP 解析: 基础

简介本文我们将从 RFC 学习一下 RFC793 中描述的 TCP 协议. 这将区别于通常讲解计算机网络书籍中所描述的 TCP. 但他们必然是相统一的,不会互相冲突.消息格式毫无疑问,我们首先得描述一下 TCP 数据包的格式.RFC 中规定的格式如下:各字段的意义及其值:这里我们先简要的介绍一下,后续详细逐一描述每个字段的用途Source Port: 16bits. 标记 TCP...

2020-04-18 19:59:26 556

原创 协议簇:ICMP 解析

简介ICMP 是 Internet Control Message Protocol 的简写. 它主要用来调试网络通信环境中存在的问题.比如,当 IP 数据包总是无法正常的发送到目的地址, 当网关没有足够的 buffer 来转发对应的数据包 等问题.值得一提的是,它属于网络层,不属于传输层. 也就是说它和 IP 协议处于同一层次,而并不是与 TCP/UDP 处于同一层次.消息格式IC...

2020-03-15 02:55:48 925

原创 协议簇:IPv4 解析

简介IP 是一种无连接的协议. 操作在使用分组交换的链路层(如以太网)上。此协议会尽最大努力交付数据包。尽最大努力意味着: IP 协议不保证数据的可靠传输, 没有流量控制机制, 不保证传输序列(意味着 IP 数据包会在传输过程中乱序), 没有接受确认 (ACK) 机制, 也没有重传机制.主要功能IP 协议提供了两个基本的功能 寻址(Address) 和 分片(Fragmentation)...

2020-02-29 02:01:39 737

原创 协议簇:Ethernet Address Resolution Protocol (ARP) 解析

简介前面的文章中,我们介绍了 MAC Frame 的帧格式。我们知道,在每个 Ethernet Frame 中都分别包含一个 48 bit 的源物理地址和目的物理地址. 对于源地址很容易理解,该地址可以直接从硬件上读取. 但是对于一个网络节点,他怎么知道一个 Frame 的目的物理地址呢? 本文我们将学习 ARP 协议来解答这个问题.ARP 协议主要用来完成将网络层协议的地址(比如,IP 地...

2020-02-22 16:39:48 651

原创 协议簇: Media Access Control(MAC) Frame 解析

Media Access Control(MAC) Frame 解析前言千里之行,始于足下。 因为个人从事网络协议开发,一直想深入的学习一下协议族,从这篇开始,我将开始记录分享我学习到的网络协议相关的知识简介引用百度百科的描述:数据链路层是OSI参考模型中的第二层,介乎于物理层和网络层之间。数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地...

2020-02-21 01:02:44 1853

原创 C 语言笔记: 链表节点实现技巧--struct的妙用

    链表节点实现技巧–struct的妙用作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人,指出错误, 避免后来读者再学习错误的知识.谢谢!废话C 语言虽然只提供了非常简单的语法,但是丝毫不影响 C 语言程序员使用 C 来实现很多让人叹为观止的高级功能.本文介绍一项在 C 语言中非常常见的链表节点实现的一个技巧.也许你...

2019-11-27 22:23:02 356

原创 如何读懂 C 语言复杂的声明

    如何读懂 C 语言复杂的声明作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人,指出错误, 避免后来读者再学习错误的知识.谢谢!参考<<C专家编程>>废话虽说 C 语言相比于其他更高级的语言来讲,有着非常精简的语法结构,对于初学者非常的友好。 然而,使用 C 语言依然可以可以写出非常难懂的...

2019-09-22 21:06:57 232

原创 Golang 词法分析器浅析

     浅析 Go 语言的词法分析器章节目录简介TokenScanner例子作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人,指出错误, 避免后来读者再学习错误的知识.谢谢!简介##在本文我们将简单的走读 Go 语言的词法分析器实现(go/scanner/scanner.go).本文基于 Go 1.11.4....

2019-05-06 21:51:51 3469

原创 CNG 关于 Key 相关的操作

章节目录简介创建 Key查看系统中的 Key从 Windows Store 导出 key导入 Key 到 Windows Store<b>作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人,指出错误, 避免后来读者再学习错误的知识.谢谢!</b>简介CNG 全称 Cryptography API: Next Gene...

2019-03-09 21:59:57 372

原创 CNG 关于 Key 相关的操作

章节目录简介创建 Key查看系统中的 Key从 Windows Store 导出 key导入 Key 到 Windows Store作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人,指出错误, 避免后来读者再学习错误的知识.谢谢!简介##CNG 全称 Cryptography API: Next Generation (CNG). 是 windows 平...

2019-03-09 21:54:58 1336

原创 SHA算法描述及实现

SHA 算法的原理及实现章节目录简介算法描述2.1 数据准备2.1.1 <数据填充2.1.2 数据分块2.1.3 设置初始 Hash 值2.2 Hash 计算2.2.1 SHA-12.2.2 SHA-2562.2.3 SHA-512实现<b>作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人,指出错误, ...

2019-02-23 14:46:47 1589

原创 SHA 算法描述与实现

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SHA 算法的原理及实现章节目录简介算法描述 2.1 数据准备2.1.1 数据填充2.1.2 数据分块2.1.3 设置初始 Hash 值2.2 Hash 计算2.2.1 SHA-12.2.2 SHA-2562.2.3 SHA-512实现作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人,指出错误, ...

2019-02-23 14:31:42 1424

原创 MD5 算法描述及实现

&nbsp;&nbsp;&nbsp;&nbsp;MD5 算法的原理及实现章节目录简介算法描述 实现作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人,指出错误, 避免后来读者再学习错误的知识.谢谢!简介##Wiki对其的描述:MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个...

2019-02-16 19:34:26 773

翻译 C10K 非阻塞 Web 服务器

&nbsp;&nbsp;&nbsp;&nbsp;本文由作为 Going Concurrency in Go 的作者 Nathan Kozyra 撰写, 解决了互联网上最著名,最受尊敬的挑战之一, 并试图通过核心 Go 包来解决它.原文地址: https://hub.packtpub.com/c10k-non-blocking-web-server-go/我们已经构建了一些可用的应用程序,...

2019-01-05 01:26:08 269

原创 证书体系: PFX 文件格式解析

章节目录PFX 简介PFX 格式解析2.1 最外层结构2.2 AuthenticatedSafe 结构参考 https://tools.ietf.org/html/rfc7292.PFX 简介##以下引用自维基百科在密码学中,PKCS #12 定义了一种存档文件格式,用于实现存储许多加密对象在一个单独的文件中。通常用它来打包一个私钥及有关的 X.509 证书,或者打包信任...

2018-11-24 19:22:26 7099

原创 ASN.1 学习

&nbsp;&nbsp;&nbsp;&nbsp;ASN.1章节目录简介常用数据类型2.1 常见的简单类型2.2 结构类型Basic Encoding RulesDistinguished Encoding Rules编码示例5.1 BIT STRING5.2 IA5String5.3 INTEGER5.4 NULL5.5 OCTET STRING5.6 UTCTim...

2018-11-17 19:08:41 13297 7

原创 sync.Map 源码学习

&nbsp;&nbsp;&nbsp;&nbsp;golang 线程安全的 Map作者水平有限,而并发博大精深. 如文章中有任何错误, 希望读者不吝指出.谢谢!章节目录Map 基本类型定义StoreLoadDeleteRangeMap 基本类型定义##Map这里我们先看一下 Map 都涉及到那些类型.type Map struct { // 互斥锁. 用于互斥...

2018-09-22 15:50:04 366

原创 汇编语言笔记(四):内中断

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;汇编语言笔记:内中断 章节目录简概念介 中断过程示例: 0 号中断处理 作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人,指出错误, 避免后来读者再学习错误的知识.谢谢!概念中断信息: 任何一个通用 CPU 都具备一种能力, 可以在执行完当前正在执行的指令之后, 检测到从 CPU ...

2018-07-21 21:55:42 2090

原创 汇编语言笔记(三): 标志寄存器

章节目录简介 ZF 标志寄存器PF 标志寄存器SF 标志寄存器CF 标志寄存器OF 标志寄存器几条相关指令DF 标志寄存器PUSHF and POPF 标志寄存器 作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人,指出错误, 避免后来读者再学习错误的知识.谢谢!简介8086 CPU 寄存器的结构如下如:每个标志寄存器都有它...

2018-07-14 11:04:21 483

原创 汇编学习笔记(二):转移指令

章节目录转移指令原理 jmp 指令 jcxz 指令 loop 指令 ret 和 retf 指令 call 指令 call+ret 作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人,指出错误, 避免后来读者再学习错误的知识.谢谢! 本文中所有程序均在DOSBox下使用MASM, LINK编译运行转移指令原理转移指令是可以控...

2018-07-07 11:27:53 773

原创 汇编语言笔记(一):基础

章节目录简单程序 使用段简单字符串处理程序使用 bx, si, di, bp 寄存器寻址寻址方法指明数据长度div指令 作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人,指出错误, 避免后来读者再学习错误的知识.谢谢!简单程序 segment…ends: 伪指令, 用来定义一个段(比如,代码段,数据段,堆栈段), segment 标...

2018-06-30 13:34:29 322

原创 并查集

章节目录简介 算法描述 实现 作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人,指出错误, 避免后来读者再学习错误的知识.谢谢!简介有时候,我们需要将 n 个不同的元素划分成一组不相交的集合. 开始时, 每个元素自成一个单元素集合, 然后按一定的规律将归于同一组元素的集合合并. 在此过程中要反复用到查询某个元素属于哪个集合的运算.适合于描述此类...

2018-04-21 11:49:55 2281

原创 矩阵 II : 线性组的线性相关性

学习机器学习, 基础的线性代数知识是必备的基础功, 对于线性代数的探索, 向量组也是线性代数的重要基础. 今天我们就开始学习一下线性代数中重要的向量组知识. 这是本人关于线性组的线性相关性的学习分享. 章节目录相关性基本概念 1.1 相性相关和线性无关 1.2 相性相关性的判别定理向量组的秩与极大无关组 2.1 秩与极大无关组 2.2 等价向量组向量空间 3.1

2018-01-28 13:09:40 14350

原创 矩阵 I : 矩阵基础

学习机器学习, 基础的线性代数知识是必备的基础功, 对于线性代数的探索, 矩阵是线性代数的主要研究对象. 今天我们就开始学习一下矩阵的基础知识. 这是本人关于线性代数矩阵的第一篇分享. 章节目录矩阵及其基本运算 1.1 矩阵定义 1.2 矩阵基本运算(+,-,*) 1.3 转置矩阵 1.4 方阵的行列式 1.5 伴随矩阵 1.6 逆矩阵矩阵的初等变换 2.1 矩

2018-01-28 13:00:39 5097

slf4j-1.5.10.zip

java web hibernate slf4j

2015-08-15

slf4j-1.5.6.zip

Java Web Hibernate slf4j

2015-08-15

hibernate-distribution-3.3.2.GA-dist.zip

Java Web Hibernate distribution

2015-08-15

hibernate-annotations-3.4.0.GA.zip

Java Web Hibernate annotatoins

2015-08-15

空空如也

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

TA关注的人

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