自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

布袋和尚

己所不欲,勿施于人。

转载 Docker / 深入理解的容器和镜像

这篇文章希望能够帮助读者深入理解 docker 的命令,还有容器(container)和镜像(image)之间的区别,并深入探讨容器和运行中的容器之间的区别。 零、概览 当我对 docker 技术还是一知半解的时候,我发现理解 docker 的命令非常困难。于是,我花了几周的时间来学习 d...

2020-05-11 17:50:50 37 0

转载 OpenLDAP / ubuntu 18.04 下源码编译及安装说明

一、下载安装包 1、OpenLDAP v2.4.49   链接:https://pan.baidu.com/s/1ezZSgCCUxJV7_ou0v58IHQ   提取码:gmie 2、BerkeleyDB v5.0   链接:https://pan.baidu.com/s/1424j_O...

2020-05-11 17:05:18 74 0

原创 OpenLDAP / Ubuntu 18.04 下 docker 版安装

一、拉取镜像 docker pull osixia/openldap 结果如下: 拉取过程 二、编写 docker-compose.yml version: '3' services: openldap: image: "os...

2020-05-11 16:54:31 38 0

转载 JavaScript / Electron / ipcMain,ipcRenderer

一、ipcMain ipcMain模块是类 EventEmitter 的实例。当在主进程中使用它的时候,它控制着由渲染进程(web page)发送过来的异步或同步消息,从渲染进程发送过来的消息将触发事件。 1、发送消息 发送消息,事件名为channel. 回应同步消息, 你可以设置event...

2020-05-11 10:30:06 70 0

转载 通信 / SSH介绍和使用,SSH key教程

一、SSH 1、概述 SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。简单说,SSH 是一种网络协议,用于计算机之间的加密登录。 最早的时候,互联网通信都是...

2020-05-08 18:36:50 26 0

转载 javascript / node.js / npm install 时 --save 和 --save-dev 的区别

一、dependencies 和 devDependencies 在使用 node 开发时, 我们在工程中用到的包必须是 package.json 中列出。而 dependencies 和 devDependencies 是package.json 中的两个属性,我们要用的包在这两个属性中列出即...

2020-04-27 14:13:30 32 0

转载 ftp、sftp、vsftp、ssh、vsftpd、sshd

零、概要总结 ftp :文件传输协议,对应 ftp 服务。 sftp:安全文件传输协议, 对应 sftp 服务。 ssh: 一组协议。 vsftp:一个提供 sftp 服务功能的软件。 vsftpd:vsftp 软件的守护进程。 sshd:ssh 服务的守护进程。 常见的提供 FTP ...

2020-04-08 07:37:25 43 0

转载 非对称加解密,私钥和公钥到底是谁来加密,谁来解密?

第一种用法:公钥加密,私钥解密。—— 用于加解密 第二种用法:私钥签名,公钥验签。—— 用于签名 有点混乱,不要去硬记,总结一下: 你只要想: 既然是加密,那肯定是不希望别人知道我的消息,所以只有我才能解密,所以可得出公钥负责加密,私钥负责解密; 既然是签名,那肯定是不希望有人冒充我发消...

2020-04-07 21:46:04 64 0

原创 TCPIP / LAN、WAN、、VLAN、WLAN 和 WIFI 的区别和联系

一、LAN 英文全称:Local Area Network 。 中文名称:局域网。 定义:指在某一区域内由多台计算机互联成的计算机组。 二、WAN 英文全称:Wide Area Network 。 中文名称:广域网。 定义:一种跨越大的、地域性的计算机网络的集合。子网可以是局域网也可以...

2020-04-07 18:00:24 287 0

转载 Linux / OpenWRT / 目录功能说明

一、目录树 注意,上图中: 蓝色是原始文件的目录结构。 红色是编译之后的目录结构。 二、原始目录 1、config 存放着整个系统的配置文件。 2、include openwrt 的 Makefile 都存放在这里,文件名为 *.mk 。这里的文件是在 Makefile 里被 i...

2020-04-07 16:27:31 48 0

原创 Linux / openwrt / 安装 Web GUI 和 ftp server

opkg update 。 opkg install luci 。 (选做,安装中文软件包)opkg installluci-i18n-base-zh-cn 。 /etc/init.d/uhttpd enable 。 /etc/init.d/uhttpd start。 (SAW:Gam...

2020-04-07 13:59:11 44 0

转载 VMware / 三种联网方法及原理

一、Brigde - 桥接(默认使用 VMnet 0) 1、原理 Bridge“桥”就是一个主机,这个机器拥有两块网卡,分别处于两个局域网中,同时在"桥"上运行着程序,让局域网 A 中的所有数据包原封不动的流入 B,反之亦然。这样,局域网 A 和 B 就无缝的在链路层连...

2020-04-04 14:34:48 38 0

原创 Linux / openwrt / Ubuntu 18.04 虚拟机中的 openwrt 如何联网

目录 1、下载 opewrt x86_64 镜像 2、安装 vmware 3、安装 openwrt 4、网络配置(桥接) 5、测试 1、下载 opewrt x86_64 镜像 和 vmware 15 本次测试的是 openwrt 19.07.2 版本的系统,文件系统是 ext4 。下...

2020-04-04 10:04:50 249 0

原创 TCP/IP / 网关 IP 和 DNS 服务器 IP 为什么可以一样?

“网关”只是一个概念,只要满足连接两个网络的功能的设备就可以称做为“网关”,比如说路由器。 当网关的 IP 和 DNS 服务器的 IP 相同时,说明路由器的功能不仅仅包括了网关、路由,还包括了转发 DNS 请求的功能,即:中继 DNS。这时的路由器仅仅负责转发而已,将请求转发给该片区域的真正的 ...

2020-04-03 18:25:52 72 0

原创 TCP/IP / 网关和路由器的区别

本质上讲,“网关”和“路由器”都是一种概念。 对于网关来说,只要实现了连接不同网段的功能的事物,都可以叫做网关。设备:路由器,软件:防火墙,这些只要包含想要的功能都可以称做为网关。 对于路由器来说,只要实现了路由寻找和转发都可以称作为路由器。TP - LINK,带有该功能的笔记本都是可以的。 ...

2020-04-03 17:50:56 71 0

原创 Linux / Ubuntu Desktop / 设置静态 IP 的方法

终端: sudo vim /etc/network/interfaces 按照如下格式进行输入 # interfaces(5) file used by ifup(8) and ifdown(8) auto lo iface lo inet loopback auto wlp3s0 if...

2020-03-31 14:12:14 30 0

原创 vscode / 杂项

1、设置快捷键与windows保持一致的方法 安装插件 Windows default keybindings 。 2、解决 tab 过短的问题 设置“Editor:Font Family”为 'monospace' 。 (SAW:Game Over!) ...

2020-03-30 08:55:19 27 0

原创 Java / 关键字

一、基本数据类型 分类 明细 位大小 默认值 整数型 byte、short、int、long 8 \ 16 \ 32 \ 64 0 \ 0 \ 0 \ 0L 浮点型 float、double 32 \ 64 0.0f \ 0.0d ...

2020-03-29 09:54:03 33 0

转载 命令 / Linux / netstat 详解

一、简介 netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。 二、输出信息含义 执行netstat后,其输出结果为 激活In...

2020-03-27 21:25:05 22 0

转载 eclipse / 绑定 OpenJDK 1.8 Java 源码的方法

Ubuntu自带的 OpenJDK 只有 JRE 环境,不提供源码,所以我们还是需要去下载。 链接: https://pan.baidu.com/s/1-JhX9MNQ5mMWLCLfIk2ODw 提取码: grym 下载完之后,只需要解压下载包下的一个子目录: / jdk / src...

2020-03-27 14:05:55 53 0

原创 OS / Linux / Ubuntu 创建应用的快捷方式

1、进入目录:/usr/share/applications,建立快捷方式:sudo vim eclipse.desktop 。(这里以创建 eclipse 快捷方式为例) 2、在文件中输入以下内容: [Desktop Entry] Encoding=UTF-8 Name=Eclipse C...

2020-03-26 17:14:07 28 0

转载 WebRTC / Jitsi / 多人视频通讯常用架构 Mesh / MCU / SFU

问题:为什么要搞这么多架构? WebRTC 虽然是一项主要使用 P2P 的实时通讯技术,本应该是无中心化节点的,但是在一些大型多人通讯场景,如果都使用端对端直连,端上会遇到很带宽和性能的问题,所以就有了下图的三种架构。 一、Mesh 每个端都与其它端互连。 以上图最左侧为例,5个浏览器...

2020-03-26 15:46:40 460 0

原创 WebRTC / Jitsi / 架构

主要模块 模块名称 功能 Jitsi Video-Bridge Software video-bridge (java) Jitsi Jicofo Component mandatory for jitsi conference (java) Prosody ...

2020-03-26 11:35:53 269 0

原创 WebRTC / Jitsi / 使用 jitsi 官方源安装内网演示环境过程

1、前提 操作系统:ubuntu 18 x64 2、安装 nginx sudo apt-get install nginx 3、添加软件源 (1)打开 sources.list 文件。 sudo vim /etc/apt/sources.list (2)在文件的最下面加上如下...

2020-03-26 10:15:01 362 0

原创 命令 / Linux / apt remove 和 apt purge 的区别

命令 功能 apt remove 会删除软件包而保留软件的配置文件 apt purge 会同时清除软件包和软件的配置文件 (SAW:Game Over!)

2020-03-25 14:11:47 101 0

原创 OS / Linux / 主线程退出了,子线程会退出吗?

在 linux 世界中,主线程退出了,子线程是否退出是要看主线程的退出方式。 主线程以 return 的方式退出。 主线程以 pthread_exit() 函数的方式退出。 前者,main() 执行完 return 之后,实际上会调用 exit() 函数,该函数除了执行关闭IO...

2020-03-22 17:39:46 32 0

原创 Linux / pthread_create() 函数所使用的线程函数为什么必须是静态函数?

答案:因为 pthread_create() 函数要求的线程函数必须满足如下格式: void *ThreadFunc(void *args); ()

2020-03-21 17:13:20 50 0

原创 OS / 进程中某个线程崩溃,是否会对其他线程造成影响?

理论上讲,线程挂掉只是触发了 segment fault ,该信号在系统中默认的处理方式是终结该线程所在的进程,如果对该信号进行屏蔽也是可以的。 但是,重点来了,触发 segment fault 的位置如果是 stack,那么只要进程屏蔽了该信号,那么对其他的线程是没有影响;如果触发 segme...

2020-03-20 08:19:29 159 3

转载 OS / 线程哪些内容是私有的和共享的?

一、私有 栈(局部变量,函数的参数)。 线程局部存储(Thread Local Storage,TLS),有限的容量。 寄存器 (执行流的基本数据)。 TLS的用法很简单,如果要定义一个全局变量为 TLS 类型,只需在它定义前加上相应的关键字即可。 _thread int number;...

2020-03-20 08:05:11 82 0

原创 python 3.8.2 / 内置的数据结构 / list (类似于 STL 中的 vector)

一、特点 (1)各个元素都是可变的。 (2)可以通过索引进行查询。 (3)列表中的元素可以是 python 中的任何对象。例如:list、tuple、dict、set、字符串和整数,并且可以任意混合。 (4)所有元素由一个中括号“[ ]”包裹。 二、相关操作 1、增 a、ap...

2020-03-19 18:17:33 66 0

原创 命令 / Linux / 常用的解压缩的命令

一、tar.gz sudo apt install tar tar -xzvf test.tar.gz 参数说明: 参数 功能 x 指定当前操作是解压缩。 选其一 z 指定压缩文件格式: gzip。 j 指定压缩文件格式:bzip2 。 v...

2020-03-19 11:44:38 25 0

原创 nginx / 安装、部署和启动

一、安装和部署 1、依赖包的安装 (1)openssl sudo apt-get install openssl libssl-dev (2)pcre sudo apt-get install libpcre3 libpcre3-dev (3)zlib sudo apt-get...

2020-03-18 21:40:03 67 0

原创 Linux / Server 端收到 SIGPIPE 信号的原因

server 端收到 SIGPIPE 信号的原因就是 Server 向已经关闭的 client 继续发送数据。 上错误代码: int SendData(char *pbuf , const size_t &len) { size_t n = 0; while (tru...

2020-03-17 12:09:31 17 0

原创 Linux / TCPIP / 判断 client 已经关闭的方法

一、被动判断 1、epoll 模型 (1)client 正常关闭。 epoll 会收到 EPOLLIN 事件,再通过 recv 返回值是否为 0 来判断 client 是否已经关闭。 (2)client 异常关闭。 (后续补充) 2、select 模型 (1)client 正常关闭。...

2020-03-15 19:42:58 21 0

原创 命令 / GDB / 多进程调试 + 多线程调试

一、多进程调试 命令 值 功能 follow-fork-mode parent 进入父进程。(默认) child 进入子进程。 datch-on-fork on 调用 fork 之后,未被调试的进程正常运行。(默认) off 调用...

2020-03-15 08:28:30 15 0

转载 OS / Linux / epoll 各种事件解析

1、监听的 fd,此 fd 的设置等待事件:EPOLLIN 或者 EPOLLET | EPOLLIN 。 由于此 socket 只监听有无连接,谈不上写和其他操作。故只有这两类。(默认是LT模式,即EPOLLLT |EPOLLIN)。 说明:如果在这个 socket上 也设置 EPOLLOUT...

2020-03-14 07:26:53 47 0

原创 C/Cpp / STL / 类型萃取

作用 类型萃取使用模板技术来萃取类型(包含自定义类型和内置类型)的某些特性,用以判断该类型是否含有某些特性,从而在泛型算法中来对该类型进行特殊的处理用来达到提高效率或者其他的目的。 实例说明 这里采用的实例是 STL 的 destroy() 函数的实现,原型如下图所示:(stl_contru...

2020-03-08 09:28:02 32 0

原创 C/Cpp / STL / vector 释放内存的方案

std::vector<T> vSum; 答案 1、当 T 为指针时,释放内存的代码如下: std::vector<T>().swap(vSum); 2、当 T 为原生类型(int、float、char)时,释放内存的代码如下: std::vector<...

2020-03-07 21:30:35 33 0

原创 C/Cpp / STL / 模板全特化和偏特化

栗子 #include <iostream> template <typename T> struct Test { void Print() { std::cout << "当前型别是 T 。" << std::e...

2020-03-07 18:31:41 24 0

原创 Linux / argv、environ 和 env 的联系

栗子 #include <cstdio> #include <unistd.h> int main(int argc, char *argv[], char **env) { printf("====================== argv ...

2020-03-07 07:46:51 22 0

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