linux网络编程之IO复用-epoll用法

上一篇文章中,我们讲解了select的用法和弊端. https://blog.csdn.net/zhangkai19890929/article/details/95165596 select的最大弊端就是: 就是每次都要遍历整个数据,来知道这个数组里到底哪些sockfd可以读写,这样的效率会导致...

2019-07-12 13:48:46

阅读数 5

评论数 1

代码片段---使用ffmpeg从h264文件中提取出一帧一帧数据

d盘有一个test.264文件,我们需要从这个h264文件中提取出一帧一帧的数据,所以直接采用ffmpeg来做。 #include <iostream> #include <stdio.h> #include <string.h...

2019-07-09 15:19:50

阅读数 3

评论数 0

linux网络编程之IO复用-select用法

首先补点基础概念,什么是IO复用?IO复用是解决什么问题的? 前面我们介绍了阻塞和非阻塞的用法,如果用着两种模式去做高并发,那么我们会怎么做?—没有任何解,我们只能用多进程,多线程的方式来做 . 下面我们来看看伪代码: 阻塞的: while(1) { int cfd = accept(); pth...

2019-07-09 10:14:45

阅读数 7

评论数 0

音视频中的码率单位kbps

平时工作学习中,真的忽略了很多细节,比如码率这个单位。 在我们看迅雷下载中,我们经常看到的单位KB/S。 但是实际上我们做计算机开发,特别是网络传输使用的是:kbps. 核心观点: 1mb 和 1MB ,这可是两个完全不同体量的数据,一定要弄明白. 1Byte = 8 bits 1B/s = 8b...

2019-07-04 11:12:35

阅读数 7

评论数 0

关于音频采样率,音频帧率,每次采集多少字节的理解!

首先要理解一些音频处理的信息:采样率/位深度/通道数. 采样率: 以秒为单位,每秒采集多少声音数据的频率. 位深度: 上面我们说的采样率,每次会采集一次声音数据,这一次的声音数据的大小,既然是位深度,那么单位肯定是位了. 通道数: 和硬件参数有关,采集声音源的设备有几个. OK,举个例子: 采样率...

2019-06-27 14:07:13

阅读数 24

评论数 0

linux c++ 网络测试-- 阻塞测试

首先说下问题的疑惑点在哪里? 1.客户端用户不发数据,服务器阻塞udp socket ,recvfrom函数是否会一直阻塞? 来,我们来写一端代码,方便我们测试,— 一定要多写代码,再简单都要写,理解和你认为你理解了,这之间的鸿沟,看似简单,实则非常深,而且不自己写一遍,心里真的是很没底的. #i...

2019-06-17 11:47:34

阅读数 19

评论数 0

linux vscode 构建调试环境

linux下的开发环境,包括调试什么的,学习成本不低呀,无法像我们在windows下面那样,有visual studio这种核武器! 但是幸运的是,我们有vs code. 下载地址: https://code.visualstudio.com/ 接下来给大家讲解一下,如何构建debug调试环境: ...

2019-06-12 09:42:11

阅读数 13

评论数 0

linux网络编程--阻塞/非阻塞/同步/异步的理解

今天来理解下网络编程中必然会遇到的问题: 阻塞/非阻塞/同步/异步. 阻塞/非阻塞: 阻塞与非阻塞是针对IO操作的,还记得我们IO操作的模型吗? (图画的很简单,因为我们不是linux内核研究,所以讲的很通俗广泛,但是方便理解,不然会枯燥死,陷入自我怀疑的死循环的~~~~) 上面是自己画的一张通...

2019-06-09 16:38:34

阅读数 14

评论数 0

tcp 长连接和短连接以及keep alive理解

什么是长连接,什么是短连接? 什么场景下运用长连接,什么场景下运用短连接? 理解一个东西,我们肯定要思考下当初这套设计是怎么来的,是为了解决什么问题? 我们先举例: 服务器和数据库的链接 ---- 长连接 HTTP网页访问 ------ 短连接. 所以基于我们的需求,如果需要频繁的...

2019-06-08 14:42:17

阅读数 16

评论数 1

TCP连接三次握手,四次挥手的通俗理解

其实这个很简单了,只要明白,三次握手,四次挥手主要是用来干什么的就可以了. 三次握手: 三次握手主要是用来干什么的,为什么就需要三次呢? 其实很简单,三次握手的目的主要是为了确认双方是否同时具备网络收发的能力. 需要确保每一个主机能够: 发送数据/接收数据,当这个确认操作完成之后,那么咱们就可以正...

2019-06-08 10:06:12

阅读数 8

评论数 0

Linux网络编程 -- SOCK OPT 选项

今天的代码很无聊,因为要测试。 环境准备: 公网阿里云ECS服务器,买最低配置的就行,流量选择按量付费,我这边购买后,一个月使用费用大概是25块钱不到吧. SOCK选项设置函数: #include <sys/socket.h> int setsockopt(int so...

2019-06-07 15:34:32

阅读数 23

评论数 0

linux网络编程-SOCK API理解 二

在上面的文章中:[linux网络编程-SOCK API理解],我们大致介绍了API的理解。(https://blog.csdn.net/zhangkai19890929/article/details/91049691) ok,我们先从代码层面进行观看下服务端和客户端的情况: 如此设计是很有必要...

2019-06-07 12:05:15

阅读数 6

评论数 0

linux网络编程-SOCK API理解

在前面我们理解了网络的层级结构,接下来我们要介绍socket api. 也就是下面的这些函数: socket/bind/listen/accept/ 首先这些函数都是基于内核的,也就是内核函数,内核主要用于干什么? 内核肯定是和硬件的驱动程序进行打交道的,不同的硬件放到主板上不同的位置,通过主板之...

2019-06-06 21:13:20

阅读数 12

评论数 0

osi 七层协议的理解 ---网络层/传输层/应用层

其实基于前面写的文章,大致的思路都已经整理明白了: 发送数据时: 最先从应用程开始封装的(定制自己的私有协议),然后再通过网卡封装为MAC帧,再听过网线(物理层)发送出去/ 接收数时: 最先从网卡开始接收,网卡会通过比对MAC,判断这个数据是发送给自己的,如果是自己的,那么就把解析MAC帧,并继续...

2019-06-06 19:54:42

阅读数 15

评论数 0

osi 七层协议的理解 ---物理层/数据链路层 ---实践部分

理论基础: 请参考我们的理论部分的基础: https://blog.csdn.net/zhangkai19890929/article/details/90900015 实验环境: 1台路由,2台笔记本,一套win做客户端,一台mac做server端,通过局域网连接. 准备工具: wireshar...

2019-06-05 20:48:02

阅读数 19

评论数 0

osi 七层协议的理解 ---物理层/数据链路层 --- 理论基础

osi 七层协议,知识点需要掌握程度: 了解/熟悉. 最近在研究网络的七层协议,但是这七层协议,我们重点分析其中的五层协议: 物理层/数据链路层/网络层/传输层/应用层 首先我们需要阐述的是七层协议是并不存在的,是人为的进行设计区分的。 1.局域网内的传输. 上面的图是我们局域网内的传输模型,...

2019-06-05 11:51:37

阅读数 16

评论数 0

webrtc 流控笔记整理

1.什么时候做关键帧重传请求? 此部分要基于缓冲区来进行设计,缓冲区的设计排布顺序,一般是I / P / P / P / P … I / P / P / P / P … 如果第一个最近的关键帧存在了丢包,并且缓冲区的数据 > 3s(时间根据自己的需求来设计) ,那么就需要发送关键帧重...

2019-05-23 14:14:51

阅读数 36

评论数 0

WIN32下的静态文本控件

win32下的静态文本控件看似简单,但是要理解也麻烦,主要是它的SS Style比较多,不光能仅仅显示文本,还能显示静态图像等等. #include <windows.h> #include "resource.h" LRESULT CALLBA...

2019-05-14 18:56:35

阅读数 34

评论数 0

WIN32下的按钮标准控件

今天学习了win32下的按钮控件,主要是普通按钮,单选按钮,复选框按钮. 效果如图: 代码如下: #include <windows.h> /** * 按钮风格 * BS_PUSHBUTTON: 指定一个命令按钮 * BS_CHECKBOX: 指定在矩形按钮...

2019-05-10 15:42:22

阅读数 34

评论数 0

win32 WM_PAIT窗口刷新消息

什么时候会出发WM_PAINT消息 。 1.程序初始化时候,窗口创建完毕,调用UpdateWindow(hwnd);可以触发WM_PAINT消息. 但是这个时候,就正常的保持窗口不动,通过断点调试,也会发现程序不断的收到了WM_PAINT的消息. (这就说明了窗口本身其实是以一定的刷新频率来固定的...

2019-05-07 20:19:59

阅读数 44

评论数 0

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