关闭

CPP开发者

所属频道 单片机 公众号精选
  • 一文教你如何用 C 代码解析一段网络数据包?

    本文的目的是通过随机截取的一段网络数据包,然后根据协议类型来解析出这段内存。学习本文需要掌握的基础知识:网络协议C语言Linux操作抓包工具的使用其中抓包工具的安装和使用见下文:《一文包你学会网络数据抓包》一、截取一个网络数据包通过抓包工具,随机抓取一个tcp数据包科莱抓包工具解...

  • 糟糕程序员的 20 个坏习惯

    今天想聊一聊优秀程序员的基本素养。我想你肯定遇到过这样一类程序员:他们无论是写代码,还是写文档,又或是和别人沟通,都显得特别专业。每次遇到这类人,我都在想,他们到底是怎么做到的?随着工作时间的增长,渐渐地我也总结出一些经验,他们身上都保持着一些看似很微小的优秀习惯,但正是因为这些...

    单片机
    2021-12-07
  • 数据中心为什么需要大二层网络

    推荐关注↓数据中心为什么需要大二层网络?在开始之前,首先要明确一点,大二层网络基本上都是针对数据中心场景的,因为它实际上就是为了解决数据中心的服务器虚拟化之后的虚拟机动态迁移这一特定需求而出现的。对于普通的园区网之类网络而言,大二层网络并没有特殊的价值和意义(除了某些特殊场景,例...

    单片机
    2021-12-07
  • Windows 程序内存泄漏 ( Memory Leak ) 分析之Windbg

    之前写了一篇>"data-itemshowtype="11"tab="innerlink"data-linktype="2">。这种方法有一定的局限性:实践证明,当程序复杂,内存频繁的申请释放,通过UMDH对比的文件将会非常的大,并且很难直接看出内存泄露所在。UMDH在收集信息的...

    单片机
    2021-08-19
  • C STL 容器如何解决线程安全的问题?

    众所周知,STL容器不是线程安全的。对于vector,即使写方(生产者)是单线程写入,但是并发读的时候,由于潜在的内存重新申请和对象复制问题,会导致读方(消费者)的迭代器失效。实际表现也就是招致了coredump。另外一种情况,如果是多个写方,并发的push_back(),也会导...

    单片机
    2021-11-09
  • 掌握这个小技巧,让你的 C 编译速度提升 50 倍!

    随着 C 项目的持续扩大,编译效率越来越是一个问题了。想一想你每天花在这上面的时间,再乘以团队成员的个数,是不是成本很高?

  • 图解网络|收到 RST,就一定会断开 TCP 连接吗?

    什么是RST我们都知道TCP正常情况下断开连接是用四次挥手,那是正常时候的优雅做法。但异常情况下,收发双方都不一定正常,连挥手这件事本身都可能做不到,所以就需要一个机制去强行关闭连接。RST就是用于这种情况,一般用来异常地关闭一个连接。它是一个TCP包头中的标志位。正常情况下,不...

    单片机
    2021-11-16
    ST RS
  • 聊聊 top 命令中的 CPU 使用率

    平常我们使用 top 命令来查看系统的性能情况,在 top 命令中可以看到很多不同类型的CPU使用率,如下图红框中标出部分:下面,我们来介绍一下这些CPU使用率的意义:us:usertime,表示CPU执行用户进程的时间,包括nice时间。通常都是希望用户空间CPU越高越好。sy...

    单片机
    2021-08-18
  • TCP 的 FIN_WAIT1 状态理解:深入理解 TCP

    近期遇到一个问题,简单点说,主机A上显示一条ESTABLISHED状态的TCP连接到主机B,而主机B上却没有任何关于主机A的连接信息,经查明,这是由于主机A和主机B的发送/接收缓冲区差异巨大,导致主机B进程退出后,主机A暂时憋住,主机B频繁发送零窗口探测,FIN_WAIT1状态超...

    单片机
    2021-09-03
  • 公司能不能监控到微信聊天?

    最近有朋友私信问我一个问题,在公司用微信聊天,用公司网络,公司能看到聊天内容吗? 坦率地说,以前从来没有分析过微信这类聊天软件,大概率使用私有协议。而私有协议在协议分析软件上的呈现,一般都是TCP封装一长串字节流,而这些字节流究竟是什么内容,协议软件无法给出答案!看看协议分析软件...

    单片机
    2021-08-19
  • 经典 | 图解 Linux 内存性能优化核心思想

    ↓推荐关注↓今天分享一篇内存性能优化的文章,文章用了大量精美的图深入浅出地分析了Linux内核slab性能优化的核心思想,slab是Linux内核小对象内存分配最重要的算法,文章分析了内存分配的各种性能问题(在不同的场景下面),并给出了这些问题的优化方案,这个对我们实现高性能内存...

  • 深入理解 Linux的 I/O 系统

    ↓推荐关注↓传统的SystemCallI/O在Linux系统中,传统的访问方式是通过write()和read()两个系统调用实现的,通过read()函数读取文件到到缓存区中,然后通过write()方法把缓存中的数据输出到网络端口。read(file_fd, tmp_buf, le...

    单片机
    2021-11-29
    I/O
  • 为什么空类大小是 1

    我们可能都知道,C中空类的大小是1。#include class EmptyA {};int main() {       std::cout 

    单片机
    2021-12-07
  • 为了一个 HTTPS,浏览器操碎了心···

    我是一个浏览器,每到夜深人静的时候,主人就打开我开始学习。为了不让别人看到浏览记录,主人选择了“无痕模式”。但网络中总是有很多坏人,他们通过抓包截获我和服务器的通信,主人干了什么,请求了什么数据全被他们知道了!光窃听也就罢了,他们还经常篡改内容,在网页里面插入诱人的小广告,真是太坏了!为了保护主人的隐私还他一个干净的上网环境,我决定对通信加密!第一版:直接简单加密加密嘛,很简单,把原来要发送的数据加密处理后再发给服务器就行了。为了安全,密钥当然不能固定,每一次通信都要随机生成。不过接下来我犯难了,我该怎么把这个秘钥告诉服务器呢,服务器没有秘钥就解不了密,也就不知道我在请求什么资源了。也不能直接...

    单片机
    2021-09-27