胖大海 胖大海
2年前
TCP/IP协议详解
TCP/IP不是一个协议,而是一个协议族的统称。里面包括IP协议、IMCP协议、TCP协议。TCP/IP协议模型,包含了一系列构成互联网基础的网络协议,是Internet的核心协议。基于TCP/IP的参考模型将协议分成四个层次,它们分别是链路层、网络层、传输层和应用层。下图表示TCP/IP模型与OSI模型各层的对照关系。1)网络接口层:主要是指物理层次
Wesley13 Wesley13
3年前
STM32F0单片机快速入门十 用 SPI HAL 库读写W25Q128
1.W25Q128介绍当我们有比较多的数据需要掉电存储时,上一篇文章所介绍的24C02(256个字节EEPROM)就不够了。此时我们会用到另外一种类型的存储器,即Flash。比如具有SPI接口的W25Q128。这颗小芯片虽然也只有简单的8个引脚,但存储容量却达到了128Mbit,也就是16M字节,同时它的读写速度可以达到
Stella981 Stella981
3年前
G6:AntV 的图可视化与图分析
!(https://pic1.zhimg.com/v2de9f0f46f75755ef43373a1ee0e0e2cf_1200x500.jpg)导读G6是AntV旗下的一款专业级图可视化引擎,它在高定制能力的基础上,提供简单、易用的接口以及一系列设计优雅的图可视化解决方案,是阿里经济体图可视化与图分析的基础设施。今年AntV1
Stella981 Stella981
3年前
Linux磁盘、Ext文件系统、目录树
硬盘组成与读写硬盘,拆过机的同志应该知道就是一块小刚体嘛。拆过主机硬盘和笔记本硬盘也应该知道不同的硬盘的接口是不一样的,主机的硬盘一般会有一条线连接到主板而笔记本的硬盘直接有插槽。这个概念只是为了引起硬盘有不同的种类存在,当我们在linux系统中输出命令fdiskl的时候,大致会有设备名称等信息。其中有可能有/dev
Stella981 Stella981
3年前
Socket编程(网络协议一)
“我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容“TCP/IP只是一个协议栈,就像程序运行一样,必须要实现运行,同时还要提供对外的操作接口网络从下往上分为  物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层,
Stella981 Stella981
3年前
Framework打包前传
关于库的一些基础知识首先来了解一下什么是库:库(Library)其实是一段编译好的二进制代码,然后将头文件暴露出来(OC中就是.h文件,swift中打包后Xcode将会自动生成.h文件需要将Swift代码前面添加public)提供给别人使用关于为什么使用库!1.只提供给使用者接口而不暴露出来具体的实现方式                    
Wesley13 Wesley13
3年前
K8S为何杀死我的应用
首发公众号:二进制社区,转载联系:binary0101@126.com导读"K8S为我们提供自动部署调度应用的能力,并通过健康检查接口自动重启失败的应用,确保服务的可用性,但这种自动运维在某些特殊情况下会造成我们的应用陷入持续的调度过程导致业务受损,本文就生产线上一个核心的平台应用被K8S频繁重启调度问题展开剖解,抽丝剥茧一
Wesley13 Wesley13
3年前
IOS 列表行高的自动计算 解决开发中痛点
UITableView一直是我们app中使用频率最高的控件。UITableViewCell的算高问题也一直是一个老生常谈的问题。我们一般算高都是将cell中得各个控件的高度计算出来,然后给外界抛出一个接口,用来获取cell高度。如果cell是定高还好,如果是变高,我们还要计算文字图片的高度,每一个不同的cell都有一大段算高的代码,而且tableview返
Stella981 Stella981
3年前
Spring Cloud微服务架构从入门到会用(三)—服务间调用Feign
微服务最重要的一个功能是服务间调用,各个服务互相依赖。比如电商系统有订单服务,有库存服务。在我们购买一件商品的时候,需要生成订单和减库存。这里我们就要用到服务间调用Feign。Feign是一个http请求调用的轻量级框架,可以以Java接口注解的方式调用Http请求,而不用像Java中通过封装HTTP请求报文的方式直接调用。接下来我们新建两个modu
Stella981 Stella981
3年前
Android OpenSL ES 开发:Android OpenSL 录制 PCM 音频数据
一、实现说明OpenSLES的录音要比播放简单一些,在创建好引擎后,再创建好录音接口基本就可以录音了。在这里我们做的是流式录音,所以需要用至少2个buffer来缓存录制好的PCM数据,这里我们可以动态创建一个二维数组,里面有2个buffer,然后每次录音取出一个,录制好后再写入文件就可以了,2个buffer依次来存储PCM数据,这样就可以