自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(3)
  • 收藏
  • 关注

原创 一个滥用引用计数的例子

前言我最近在修改一个程序错误中,发现某段数据资源总是释放不了。后做了深入调查,发现该程序大量使用了引用技术。这段该释放的资源在需要释放的时,它的计数器总是大于1。因此我针对这段资源的所有get和put操作,仔细检查了引用计数的加减的过程。就从程序的字面上看,get和put确实成对出现。但从设计的角度来说, 有的put是不会被调用的,因此对应的资源就无法释放。本文中,我想就这个例子来看看这个设计的问题出现在哪里。基本原理引用技术是底层编程中一种资源管理常用的技术。概要的说,是将资源(包括内存,对象和磁

2020-10-31 03:10:21 212

原创 TCP粘包的解决方案

前言TCP粘包是个常见的问题,也有很多文章谈到。我根据自己的经验,争取用一种简洁易懂的办法把粘包的问题和解决办法和读者分享,希望留言指正。基本概念TCP本质上是数据流,从原理上看,没有包的概念,TCP包对应用程序员可以是透明的。粘包实际上是把底层包的实现和上层流的概念混在一起。粘包问题本质上是如何确定数据流的边界。确定边界的几种典型办法1. 固定长度法:一般在简单的私有协议中实现,可以简化流程,方便实现。阻塞发送与接收:发送:send(fd, wr_data_bu

2020-10-29 13:52:28 1086

原创 socket的异步通讯机制

前言:在网络socket编程中,开发着常常没有异步通讯的经验,客户端发完数据就阻塞等待,或者开启一个进程或线程来专门处理通讯问题。很少有人能写出一个异步通讯的优雅流程,从而适应当前大规模平行计算的要求。我想就这个问题以FTP为例和大家分享一下。问题:FTP 是一个建立在TCP/IP之上,在客户端和服务器之间用于文件传输的标准协议。要实现一个完整的客户端文件下载过程,一般有三个步骤:通过三次握手建立TCP的控制信道,然后发送用户名和密码,通过用户认证;还需要指定下载文件的模式和接收建立数据信道传输

2020-10-28 09:03:21 2434

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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