TCP 可靠连接的相关命令

关于 TCP可靠连接在之前有专门的介绍,点击连接查看. netstat 命令 netstat 用于打印网络连接、路由表、连接的数据统计等,我们上文中介绍的各种连接状态都可以通过该命令进行统计 参数介绍: - -a:列出所有状态的连接 - -l:列出正在监听状态(State=LISTEN的连接 - -t:列出所有 tcp 协议的连接 - -u:列出所有 udp 协议的连接 - -n: 开启域名解析,将对应的域名解析为 IP - -p:列出正在监听的进程名称和进程 PID(PID/Program name),在 root 用户下启动的进程,普通用户是查不到对应的进程名称的 - -e:列出进程对应

levelup 4.x版本升级node.js下leveldb数据库对照文档

levelup 是一个由谷歌构建的简单 key-value 数据库. 它在 Google Chrome 和许多其他产品中使用,使用 fast Snappy算法,可以将任意字节数组作为键和值. leveldown 它提供了一个纯 C++ 绑定到 LevelDB. 在浏览器或者 memdown 中,有许多可选存储( 如 level.js ),用于内存存储中的. 它们通常支持键和值的字符串和缓冲区. 对于更丰富的数据类型集,可以用 encoding-down 包装存储. level 它可以看做是包的一个集合,捆绑了 levelup , leveldown 和 encoding-down. 它的

apt-get update 太慢,如何解决

apt-get update 太慢如何换源 备份系统source文件 sudo cp sources.list sources.list.bak 替换source内容 打开source文件,替换内容 # deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties deb

算法的时间与空间复杂度

算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源和时间却会有很大的区别。 那么我们应该如何去衡量不同算法之间的优劣呢? 主要还是从算法所占用的「时间」和「空间」两个维度去考量。 时间维度:是指执行当前算法所消耗的时间,我们通常用「时间复杂度」来描述。 空间维度:是指执行当前算法需要占用多少内存空间,我们通常用「空间复杂度」来描述。 因此,评价一个算法的效率主要是看它的时间复杂度和空间复杂度情况。然而,有的时候时间和空间却又是「鱼和熊掌」,不可兼得的,那么我们就需要从中去取一个平衡点。 下面我来分

vue项目打包发布线上环境

说明 发现一些朋友在群里询问如何线上发布vue项目. 从而暴露出来很多有意思的问题. 所以这篇博文简单介绍一下vue项目线上发布的情况. 本地环境 mac os node 10.16 vue 2.6 vue-cli 4.0 线上环境 centOS6 node 10.16 nginx vue是最近很火的前端框架, 所以它依赖的是浏览器,及我们可以从浏览器定位到你服务器nginx,然后nginx把指定的静态资源转发出来,最后我们在浏览器渲染看到 不管你的服务器是iis,apache还是nginx 只要http可以定位到服务器的静态资源即可. 很多人会有问号? 那为什么我在开发的时候用node命令

node.js json-server 使用教程

一. json-server介绍 json-server 一个在前端本地运行,可以存储数据的server ,模拟接口,操作模拟数据 二. json-server的使用 2.1 安装 npm install json-server -D 复制代码 安装完成之后,可以通过 json-server -h 命令检查是否安装成功 json-server [options] Options: --config, -c 指定 config 文件 [默认: "json-server.json"] --port, -p 设置端口号

es6 class 中 constructor 方法 和 super 的作用

es6 中的class ES6 的 class 属于一种“语法糖”,所以只是写法更加优雅,更加像面对对象的编程,其思想和 ES5 是一致的。 function Point(x, y) { this.x = x; this.y = y; } Point.prototype.toString = function() { return '(' + this.x + ',' + this.y + ')'; } 等同于 class Point { constructor(x, y) { this.x = x; this.y = y; } toStri

区块链是什么

什么是区块链 区块链是一种以区块为基本单位的链式数据结构,区块中利用数字摘要对之前的交易历史进行校验,适合分布式记账场景下防篡改和可扩展性的需求; 它具有分布式数据存储、点对点传输、共识机制、加密算法等计算机技术,通过维护数据块的链式结构进行持续增长的、不可篡改的数据记录. 区块链(Blockchain),是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块. 工作原理 区块链系统由数据层、网络层、共识层、激励层、合约层和应用层组

推荐一个极简社会化分享插件basicShare

basicShare 推荐一款极简的分享插件 之前用过百度分享,后来博客切换https服务后, 百度分享插件加载报错, 再加上目前主流的社会化分享目的地也就是 微信,微博, 或许是80后的我真的out了, 这个插件基本满足我的需要 极致简洁 UI效果 截图展示效果有点大.... 看看实际效果: 分享 站点没有下载icon,所以前面的分享icon变成了方框□ css .basicShareBtn { cursor: pointer; background-color: #dff0d8; border-color: #d6e9c6; color: green; font-size: 1

axios中文使用文档说明

关于axios axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js. 主要功能 从浏览器中创建 XMLHttpRequests 从 node.js 创建 http 请求 支持 Promise API 拦截请求和响应 转换请求数据和响应数据 取消请求 自动转换 JSON 数据 客户端支持防御 XSRF 浏览器支持 使用 浏览器端 直接引用: <script src="https://unpkg.com/axios/dist/axios.min.js"></script> 使用 bower: bower ins

免费申请SSL证书 - 站点从http升级到https

前言 现在https协议以及成为站点标配, 前面写过一篇关 http跳转https服务的博客, 有些人询问如何申请SSL证书. https优点 提升搜索排名 实现网站HTTPS化,加密用户与网站间的交互访问,强化网站用户侧可信展示程度,防劫持、防篡改、防监听. 采用Https加密的网站在搜索引擎显示结果中的排名将会更高,有利于提升网站的搜索靠前及站点可信度. 申请SSL证书 一般的云服务器厂商都支持购买证书, 我们今天说的是在阿里云免费申请SSL证书. 阿里云SSL证书品牌有 GeoTrust Symantec (赛门铁克) GMO GlobalSign CFCA 我们选择个人免费类型

Nodejs Event Loop 事件循环机制

什么是事件循环 Event loop 事件循环是 Node.js 处理非阻塞 I/O 操作的机制——尽管 JavaScript 是单线程处理的——当有可能的时候,它们会把操作转移到系统内核中去。 既然目前大多数内核都是多线程的,它们可在后台处理多种操作。 当其中的一个操作完成的时候,内核通知 Node.js 将适合的回调函数添加到 轮询 队列中等待时机执行. 工作机制是什么样的? Client 请求到达 node api,该请求被添加到Event Queue(事件队列)[这是因为Node.js 无法同时处理多个请求] Event Loop(事件循环) 始终检查事件队列中是否有待处理事件,如果

vscode 高效率插件koroFileHeader注释辅助和GitLens代码追踪

前言 vscode优势强劲,让各种技术栈同学爱不释手,不仅仅是IDE足够优秀,而且他的生态也非常丰富,各种各样的插件让你武装到牙齿. 今天推荐的2款插件本人都在用. koroFileHeader 文件头部加注释 光标处添加函数注释 文件头部加注释 文件头部注释在你创建文件自动添加, 如果是老文件,保存时自动添加更新记录. /* * @Author: zhangzhi * @Date: 2019-07-11 13:40:28 * @LastEditTime: 07-11 17:15:57 * @LastEditors: zhangzhi * @Description: In User Set

Java 中的内部类有什么用?

什么是内部类 把类定义在另一个类的内部,该类就被称为内部类. 非常重要的一点是,内部类能够访问外部类的所有成员,包括private修饰的. 为什么需要内部类 Java的内部类让我很容易的想起来JavaScript的闭包,闭包就是定义在一个函数内部的函数——这听起来和Java的内部类定义一样一样的. 本质上,闭包是将函数内部与函数外部连接起来的桥梁. 内部类一样,它是将内部类与外部类连接起来的桥梁. 内部类有何优势 内部类可以直接访问外部类中的成员(包括私有成员), 内部类可以独立地继承一个抽象类或者实现一个接口,无论外部类是否也这样做了,对内部类都没有影响. 可以模拟实现多继承 我们知

vue 和 react 的相同点以及不同点

vue 和 react 的相同点 1.他们都是JavaScript的框架,专注于创造前端的富应用 2.不同于早期的JavaScript框架“功能齐全”,React与Vue只有框架的骨架,其他的功能如路由、状态管理等是框架分离的组件。 3.Vue.js(2.0版本)与React的其中最大一个相似之处,就是他们都使用了一种叫’Virtual DOM’的东西都鼓励组件化 4.看到React和Vue都有’props’的概念,这是properties的简写。props在组件中是一个特殊的属性,允许父组件往子组件传送数据。 5.React和Vue都有自己的构建工具,你可以使用它快速搭建开发环境 6.Re

javascript字符串转化成数字的几种方法

前言 javascript因为他的不完美, 导致了字符串可以有好几种转化为数字的方法, 但是可用的方法越多,留下的坑也就比较多. parseInt 几乎所有浏览器都能解析处理此方法. console.log(parseInt('001一介布衣'); //有些老旧浏览器会返回 0 //现代浏览器会返回 1 此方法优点: ** 处理速度最快** Number Number 几乎所有浏览器都支持解析, 但是它针对参数是否有引号会做出不同的解析. console.log(Number('0028')); 输出:28 console.log(Number(023)); 输出:19 当 Numbe

docker 安装 redis 让宿主机访问

docker 安装 redis 拉取镜像 docker pull redis 宿主机创建映射目录 创建目录 sudo mkdir -p docker/redis/redis01/conf sudo mkdir -p docker/redis/redis01/data conf 目录放redis.conf 配置文件 data 目录映射redis数据目录 上面文件都要chmod 777 的权限 创建配置文件 在线拉取一个 redis.conf 放入 docker/redis/redis01/conf 目录下 cd docker/redis/redis01/conf wget http:

ES6 语法中 export 和 export default 的区别是什么

ES6 下export 和 export default 的区别 export与export default均可用于导出常量、函数、文件、模块等 你可以在其它文件或模块中通过import+(常量 | 函数 | 文件 | 模块)名的方式,将其导入,以便能够对其进行使用 在一个文件或模块中,export、import可以有多个,export default仅有一个 通过export方式导出,在导入时要加{ },export default则不需要 ES6 下 export 导出方式 //a.js export const str = "blablabla~"; export function

centOS用shell脚本定时备份mongodb并清理历史备份版本

前言 备份数据库是运维同志的日常工作之一, 但是对于中小公司,或者服务器托管在云服务商的公司来说,基本没有专业的运维工程师. 所以一部分公司中,开发工程师就要分担一些运维的事情. 我们本着能让计算机做的事情绝对不动手原则, 今天就和大家分享一下 centOS下定时自动备份mongodb数据库,并且清理历史备份记录. centOS安装crontab 如果你的系统已经安装,请直接跳过此步骤. [root@CentOS ~]# yum install vixie-cron [root@CentOS ~]# yum install crontabs 说明 vixie-cron软件包是cron的主程

TCP 可靠连接的状态简介

什么是TCP协议 位于 OSI 模型中的传输层(第四层),是一种端对端的传输协议 面向连接的、可靠的协议 通过校验、序列化、确认应答、重发控制、窗口控制等机制实现可靠传输 由建立连接、数据传输和连接释放三个阶段组成 采用三次握手建立连接,采用四次挥手关闭连接 OSI Open Systems Interconnection 网络堆栈中协议的分层结构,TCP在此结构的第四层位置. TCP三次握手 三次握手为了使 Client 和 Server 都确认是否有接受对方的数据和发送数据给对方的能力: 这里不要把图里的 Client/Server 和项目里的客户端服务器端混淆,主动发起连接的一方或者

javascript 中的 Object.defineProperty

javascript中的 object javascript中的object是由多个名/值对组成的无序的集合; object 中每个属性对应任意类型的值; 定义对象可以使用构造函数或字面量的形式. var obj = new Object; obj.name = "一介布衣"; obj.show = function(){}; //添加行为 除了以上添加属性的方式,还可以使用Object.defineProperty定义新属性或修改原有的属性 Object.defineProperty Object.defineProperty(obj, prop, descriptor) 参数说明:

electron加载第三方c++库走过的坑

前言 在node的程序中,如果有大数据量的计算,处理起来比较慢,可以用C来处理,然后通过回调(callback的形式),返回给node. 那么编写好的C组件如何可以在node.js环境中调用呢. Node.js 插件是用 C++ 编写的动态链接共享对象,可以使用 require() 函数加载到 Node.js 中,且像普通的 Node.js 模块一样被使用. 它们主要用于为运行在 Node.js 中的 JavaScript 与 C/C++ 库之间提供接口. node.js如何编写c++组件 以官方Hello World” 示例是一个简单的插件,用 C++ 编写,如下代码: module.ex

go 语言实践:命名规则

go 语言命名 go 语言不像java 等传统面向对象语言一样有访问修饰符; 它是从语法层面做了限定: 想要对外暴露的名字必须大写字母开头 [类似 public 修饰符] 不想对外暴露的名字必须小写字母开头 [对其他包不可见,类似私有变量] 包名称命名规则 取名要有意义,不与标准库冲突; 包名与目录名一致; 包名要使用小写开头的单词; 不混合大小写或者下划线等; 如: package yijiebuyi 文件命名规则 取名要简短,有意义; 小写单词打头; 多个单词使用下划线分隔; blog_content.go 结构体命名规则 驼峰命名法. 至于大驼峰还是小驼峰取决于该结构体是否要向

mongodb客户端连接报错 Error: Failed to execute "listdatabases" command​

前言 本人当前使用的mongodb客户端版本Robo 3T 1.3.1 配置连接远程mongodb时报错: Error: Failed to execute "listdatabases" command 原因是因为今天mongodb config中指定了权限验证 开启mongodb验证 /etc/mongod.conf security: authorization: enabled 因为mongodb安装以后只在cmd中进行本地访问,所以要使用图形界面就需要使用登录账号及密码 解决方案 之前mongodb 采用 SSH 远程连接mongodb的方式, 现在需要重新编辑 添加Auth

electron中文文档 ClientRequest

new ClientRequest(options) electron框架下主线程发起HTTP/HTTPS请求. ClientRequest实现了Writable Stream接口, 因此是一个EventEmitter类型. 参数 (Object | String) -如果 选项 是一个String类型, 它被解释为请求的URL. 如果它是一个Object类型, 那么它可以通过以下属性指定一个HTTP请求 method String (可选) - HTTP请求方法. 默认为GET方法. url String (可选) - 请求的URL. 必须在指定了http或https的协议方案的独立表单

position Fixed on Scroll 相对定位时内容超出范围出现滚动条

之前写过一篇 关于css相对定位不跟随滚动条移动点击查看. 正如我的博客内容页右侧目录的效果. 垂直滚动内容时,右侧目录始终定位在右上角不跟随滚动条. 但是, 当我的目录足够长,因为它不跟随滚动条垂直移动, 导致超出屏幕的部分无法看到. 右侧目录相对定位 'position': 'fixed', 'top': 25px, 'width': 400px top 25px 是因为我的博客顶部菜单高度25px,所以为了不让菜单遮挡右侧目录,所以距离顶部25px 但是页面初始化后,我们并不想直接让目录相对定位到右上角, 因为右上角还有需要展示的模块, 我们更希望是滚动条滚动到目录模块时,这个模块始

vscode 天赋异禀 - 格式化jsx代码

jsx代码格式化错乱 当你在用vscode编写jsx代码时,也许你的编辑器设置了自动保存,或者自动格式化代码. 而vscode 对js文件中的 jsx 代码格式化是下面这个样子的: 如何修复这种情况 首先安装插件 Prettier vscode扩展插件中搜索 Prettier 安装 修改配置文件 vscode 文件-> 首选项-> 设置->用户->文本编辑器->文件 右侧添加项: "*.js": "javascriptreact" 或者在配置文件settings.json 中搜索 files.associations ,里面添加 "*

使用Electron打造跨平台桌面应用

前言 早期桌面应用的开发主要借助原生 C/C++ API 进行,由于需要反复经历编译过程,且无法分离界面 UI 与业务代码,开发调试极为不便。后期出现的 QT 和 WPF 在一定程度上解决了界面代码分离和跨平台的问题,却依然无法避免较长时间的编译过程。近几年伴随互联网行业的迅猛发展,尤其是 NodeJS、Chromium 这类基于 W3C 标准开源应用的不断涌现,原生代码与 Web 浏览器开发逐步走向融合,Electron 正是在这种背景下诞生的。 electron Electron 是由 Github 开发,通过将Chromium和NodeJS整合为一个运行时环境,实现使用 HTML、CS

什么是electron - javascript,html和CSS 构建跨平台桌面应用

开源地址 https://github.com/electron/electron 关于Electron Electron是由Github开发,用HTML,CSS和JavaScript来构建跨平台桌面应用程序的一个开源库。 Electron通过将Chromium和Node.js合并到同一个运行时环境中,并将其打包为Mac,Windows和Linux系统下的应用来实现这一目的。 核心团队和贡献者 Electron由Github上的一支团队和一群活跃的贡献者维护。 有些贡献者是独立开发者,有些则在用Electron构建应用的大型公司里工作。 版本 Electron的版本发布很频繁。 每当Chro

回到顶部