
[程序员的自我修养]
桑来93
time will tell
展开
-
Windows下使用tree命令生成目录树
tree命令/? 即可显示该命令的基本使用方法。显示目录树tree /f原创 2019-12-07 16:59:14 · 1718 阅读 · 1 评论 -
CMake入门2:添加库
建构自己的库把库放到一个独立的文件夹。在工程目录下新建 mathfunction的子目录中。在这个文件夹中新建CMakeLists.txt文件。包含以下一行代码:add_library(MathFunctions mysqrt.cpp)新建 MathFunctions.h,在里面定义// 声明函数的形式double mysqrt(double x);在这个文件夹中创建源文件m...原创 2019-12-07 16:55:32 · 381 阅读 · 0 评论 -
CMake入门1:概述与基本语法
0 CMake介绍CMake 是个开源的跨平台自动化建构系统。用来管理软件配置的程序,并不依赖于某个特定编译器。并可支持多层目录、多个应用程序、多个库。CMake的配置文件取名为CMakeLists.txt。CMake配置文件(CMakeLists.txt)可设置源代码或目标程序库的路径、产生适配器(wrapper)、还可以用任意的顺序建构可执行文件。CMake也支持静态与动态程序库...原创 2019-12-06 21:43:14 · 295 阅读 · 0 评论 -
看懂UML类图和时序图
学习设计模式,必须看懂这些类图。学习一下表示方式。参考文档看懂UML类图和时序图深入浅出UML图UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)类图用Bouml画了一下:车的类图结构为abstract,表示车是一个抽象类;它有两个继承类:小汽车和自行车;它们之间的关系为实现关系,使用带空心箭头的虚线表示;小汽车为与SUV之间也是 继承 关系,它们之间的...原创 2019-12-02 16:21:36 · 394 阅读 · 0 评论 -
HOOK API技术
HOOk API技术HOOK学习笔记与心得奇技淫巧之调试被远程线程注入的DLLwindows核心编程_系统消息与自定义钩子hook使用[Windows Dll Injection、Process Injection、API Hook、DLL后门/恶意程序入侵技术]Hook :Microsoft Detours 2.1简介detours3.0文档Hook简单实用detours ...原创 2019-10-13 10:53:04 · 4402 阅读 · 2 评论 -
TCP和UDP的区别
TCP是面向连接的 ; UDP是非面向连接的;TCP提供可靠的字节流传输 ; UDP提供的不可靠的数据报传输;TCP只支持一对一的通新 ; UDP支持一对一,多对一,多对多的通信;TCP有拥塞控制 ; UDP没有拥塞控制,在哇昂了出现拥塞的情况下不会降低源主机的发送速率,对实时业务非常有用;TCP传输的数据是顺序到达的 ; UDP传输的数据不能保证是顺序的;TCP的首部开销大(20字节...原创 2019-03-16 09:52:51 · 122 阅读 · 0 评论 -
为什么TCP握手不是两次和四次
转载自为什么TCP握手不是两次和四次TCP看似复杂,其实可以归纳为以下5种报文:(1)SYN(2)Data (唯一携带用户数据)(3)FIN(4)Reset(5)ACK其中1、2、3分别为建立连接、数据传输、断开连接,这三种报文对方接收到一定要ACK确认,为何要确认,因为这就是可靠传输的依赖的机制。如果对方在超时时间内不确认,发送方会一直重传,直到对方确认为止、或到达重传上限次...转载 2019-03-16 11:08:18 · 783 阅读 · 0 评论 -
操作系统之 进程与线程
进程与线程进程组织进程控制块 PCB程序段数据段进程的状态阻塞 运行 就绪开始 结束状态切换就绪状态 -> 运行状态 : 获得处理机时间片运行状态 -> 就绪状态 : 1. 时间片用完,让出处理机 2. 在可剥夺操作系统中,优先级高的先执行.运行状态 -> 阻塞状态 : 进程等待某一资源的使用或者分配或某一个事件发生,由运行变成阻塞.阻...原创 2019-03-16 20:08:27 · 165 阅读 · 0 评论 -
计算机网络 | Socket编程
解开Socket编程的面纱Socket编程C++基于TCP和UDP的通信Linux 下socket通信终极指南(附TCP、UDP完整代码)UDP Socket全攻略1. 网络中进程之间如何通信?本地的进程间通信(IPC)有很多种方式:消息传递(管道、FIFO、消息队列)同步(互斥量、条件变量、读写锁、文件和写记录锁、信号量)共享内存(匿名的和具名的)远程过程调用(Sola...转载 2019-04-27 21:45:41 · 1009 阅读 · 0 评论 -
计算机网络 | UDP的connect
UDP的connect1 简介UDP是无连接的协议,不需要connect可以直接使用sendto/sendmsg等携带对端信息的函数对数据进行发送接收,但是其实UDP的socket也是可以进行connect的。2 Connected UDP & unconnected UDP在UDP中,使用sendto数据传输过程分三阶段:a. 向UDP套接字注册目标IP和端口号;b. ...转载 2019-04-27 22:10:40 · 543 阅读 · 0 评论 -
正向代理与反向代理的区别
正向代理与反向代理的区别1. 概念正向代理是一个位于客户端和目标服务器之间的代理服务器(中间服务器)。为了从原始服务器取得内容,客户端向代理服务器发送一个请求,并且指定目标服务器,之后代理向目标服务器转交并且将获得的内容返回给客户端。正向代理的情况下客户端必须要进行一些特别的设置才能使用。 反向代理正好相反。对于客户端来说,反向代理就好像目标服务器。并且客户端不需要进行任何设置。客户端...转载 2019-07-13 16:30:50 · 353 阅读 · 0 评论 -
TCP的流量控制与拥塞控制小结
TCP可靠传输TCP采用校验 序号 确认 重传机制来实现可靠传输.序号确认TCP首部的确认号是期望收到的对方的下一个报文段数据的第一个字节的序列号.重传超时: 每次发送一次报文,设置一次计数器,若重传时间内没有收到确认.就重传这段报文.冗余ACK确认:每当收到比期望序号大的失序报文时,发送一个冗余的ACK.当发送发收到对同一个报文的冗余ACK.就认为这个被确认过的报文之后...原创 2019-03-11 17:08:53 · 249 阅读 · 0 评论 -
TCP/IP三次握手与四次挥手学习笔记
转载自TCP/IP三次握手与四次挥手一、首先了解TCP报文格式其中必须了解的字段有:1、源端口与目的端口:16位,标识出发送端与接收端的端口号。2、序号:32位,也叫顺序号、seg序号,本报文段所发送的数据的第一个字节的序号,用来标记数据报顺序。3、确认号:32位,ack序号,用来标记期待收到对方下一个报文段的第一个数据字节的序号,确认信号ack=发送过来的seg+1,收发两端配对。...转载 2019-03-07 10:30:22 · 195 阅读 · 0 评论 -
数据结构: LRU(LeastRecentlyUsed) 最近最少使用
LRU(LeastRecentlyUsed) 最近最少使用原理LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”详情看漫画图解LRU实现为了使得查找 插入 和删除都有较高的性能.通过一个双向链表(std::list)保存数据,和一个哈希表(std::unordere...原创 2019-01-05 18:01:28 · 1264 阅读 · 0 评论 -
程序员的自我修养[链接/装载/库] 第二章笔记
被隐藏了的过程集成开发环境: Build:编译+链接GCC编译Hello World程序$gcc hello.c$./a.out 预处理(Prepressing) 编译(Compilation) 汇编(Assembly) 链接(Linking)预编译$gcc -E hello.c -o hello.i预编译预测...原创 2018-04-15 10:43:46 · 173 阅读 · 0 评论 -
计算机网络核心基础知识
参考文档计算机网络核心基础知识计算机网络性能指标速率:传输数据速率. 单位b/s kb/s Mb/s带宽:最高传输速率.吞吐量:单位时间通过某个网络信道或接口的数据量,单位b / kb /Mb等时延:发送时延(主机or路由器发送数据所需时间).传播时延(电磁波在信道中传输所需时间).处理时延排队时延.时延带宽积 = 传播时延*带宽往返时间RTT利用率...原创 2018-04-22 16:18:46 · 415 阅读 · 0 评论 -
计算机网络基础
参考文献计算机网络基础基础网络知识互联网协议入门一从系统的角度,解释互联网是如何构成的自下而上介绍整个互联网的五层结构互联网协议入门二互联网协议的整个通信过程在浏览器中输入一个网站后,都发生了什么计算机网络总结问答形式...原创 2018-04-22 20:16:03 · 154 阅读 · 0 评论 -
操作系统
程序员自我修养之操作系统篇原创 2018-05-01 15:25:31 · 177 阅读 · 0 评论 -
SQL必知必会笔记一
什么是SQLSQL : Structured Query Language 结构化查询语言基本概念数据库 database : 保存有组织的数据的容器表 table 是一种结构化的文件 用来存储某种特定类型的数据数据库中的每个表都有一个名字来标识.名字是唯一的.说明:表明模式 : 关于数据库和表的布局以及特性的信息列 : 表中的一个字段. 所有的表都是由一个或多个列...原创 2018-05-01 21:38:21 · 184 阅读 · 0 评论 -
SQL必知必会笔记二
创建计算字段计算字段字段 : 基本上与 列 的意思相同计算字段是运行时在 SELECT 语句内创建的拼接字段拼接 : 将值连接到一起. 将一个值附加到另一个值构成一个单值.操作符:+ 加号|| select vend_name || '(' || vend_country || ')'from Vendors;函数 PTRIM() : 去除值右边的所...原创 2018-05-06 19:53:50 · 235 阅读 · 0 评论 -
SQL必知必会笔记三
插入数据 如何利用SQL的 INSERT 语句将数据插入表中数据插入SELECT 是最常用的SQL语句.INSERT 用来将 行 插入 或添加到数据库表插入的几种方式:插入完整的行掺入行的一部分插入你某些查询的结果插入完整的行将数据插入表中的最简单方法就是使用基本的 INSERT 语句INTO 关键字 插入部分行待补充插入索引出的数...原创 2018-05-06 20:48:51 · 151 阅读 · 0 评论 -
Shell 基础学习
Shell 教程shell 是一种命令语言. 也是一种程序设计语言.shell 脚本shell 环境 : 常见的有 Bourne Shell(/usr/bin/sh或/bin/sh)第一个shell脚本#! 是一个约定的标记. 它告诉系统这个脚本用的是什么编译器来执行.echo 命令用于向窗口输出文本.#!/bin/bashecho "Hello World...原创 2018-05-07 15:03:11 · 198 阅读 · 0 评论 -
字符编码笔记:ASCII,Unicode 和 UTF-8
referenceASCII编码计算机内部,所有信息最终都是一个二进制值。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从00000000到11111111。ASCII 码一共规定了128个字符的编码非ASCII编码...转载 2018-05-15 08:46:45 · 210 阅读 · 0 评论 -
设计模式-观察者模式
设计模式 | 观察者模式libdash播放器使用的就是观察者模式的设计方式!什么是观察者模式:观察者模式是软件设计模式的一种。在此种模式中,一个目标对象管理所有相依于它的观察者对象,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来 实时事件处理 系统。使用动机:观察者模式定义一种交互,即发布-订阅:一个对象当自身状态发生改...原创 2018-12-04 11:05:32 · 229 阅读 · 0 评论 -
程序员的自我修养[链接/装载/库] 第一章笔记
技术优劣取决于需求计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决.计算机系统软件体系结构的设计要点:按层次结构设计的每个层次之间需要相互通信.通信协议,接口.接口的上层为接口使用者.下层为接口提供者.操作系统的一个功能就是提供抽象的接口.另一个功能就是管理硬件资源.一个计算机中的资源主要为 CPU 存储器(内存&磁盘) IO设备所有...原创 2018-04-15 10:02:06 · 257 阅读 · 0 评论