自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

月竹影的专栏

一蓑烟雨任平生

  • 博客(13)
  • 收藏
  • 关注

原创 ByteBuffer的array函数的UnsupportedOperationException异常

ByteBuffer其实是对一个byte数组进行包装,增加了很多方便操纵的方法。但封装也会隐藏底层的操作方法,所以ByteBuffer提供了array()函数返回一个byte[]数组,用于底层直接访问。ByteBuffer可以用allocate()函数来直接new 一个byte[]进行操作,也可以用wrap函数把一个byte[]数组包装起来,对这个byte[]数组进行操作。ByteBuffer 内部用hp来保持byte[]数组位置。array()函数会把ByteBuffer内部的byte[]

2021-04-25 11:34:47 2073

原创 内存池的坑

前言今天解决一个内存池的bug,忍不住吐槽两句。内存池的作用主要有两个:一是减少内存反复申请释放带来的耗时以及PageFault,二是让程序执行耗时更稳定和平滑。所谓的减少内存碎片,我觉得主要是针对windows系统考虑的,linux这一点就好多了,一般不用特意去优化。现象在我的网络通信框架KonsanNet中,我写了一个简单的内存池,用于对自己可能用到的内存先提前申请出来,然后持续使用,有利于程序功能执行的稳定和平滑性。每次从操作系统申请内存耗时都有所区别,如果系统内存空闲比.

2021-02-25 14:06:46 422

原创 关于使用条件变量、事件来唤醒等待线程的坑

最近在产品研发中使用自己之前写的网络通信框架,改了很多bug,也增加了一些东西,开源版本后续逐步更新上去。今天在查找一个bug的时候,发现关于事件和条件变量的一个bug在别的地方也出现了,是之前修改代码时没有全部修改完毕,遗留下来的,有很深的隐藏性,干脆拿出来聊聊吧。

2021-02-24 12:45:45 422

原创 KonsanNet 网络通信框架 V0.8 更新

简述 前些天觉得该库名称太长,改了一个简单的名称KonsanNet。 本版本已经基本完成大部分功能,已经可以用于常见的场景,此后先暂停一段时间,最近事情比较多,难有闲暇。源码地址 GitHub:https://github.com/KonsanAlide/KonsanNet更新内容增加任务池CXTask 增加任务的池化运...

2019-09-08 22:21:36 167

原创 KonsanNet 网络通信框架 V0.7 更新

简述 一年过去,忙碌而多烦忧,多在管理和处理线上故障上,能沉下心写代码的时间少,所以开源就更顾不上了,间隔或修改一二,但都无闲暇做完整测试,也无更新。 近来,有些空余,也因一项目需要,把通信框架修改了不少,昨天发布,现做简单的阐述。 本次版本姑且称Version 0.7吧,于我心中,还缺不少模块,也缺一些功能,离大规模高质量传输还有些距离,虽然已经不...

2019-08-12 11:36:36 267

原创 KonsanNet 网络通信框架实现(第四章)— 库封装、分层、容器、内存池(第一阶段结束)

框架源码地址 GitHub:https://github.com/KonsanAlide/KonsanNet修改内容阐述 这两天有些时间,修改了部分代码,为四部分:服务端库封装、消息包处理的分层、队列容器、内存池。服务端库封装、消息包处理的分层 为了以后使用方便,把服务端的会话验证消息处理功能、用户消息处理、数据包压缩和加密处理这三部分抽到...

2018-06-03 23:50:02 238

原创 KonsanNet 网络通信框架实现(第三章)— 性能测试

源码地址 GitHub:https://github.com/KonsanAlide/KonsanNet性能测试 昨天有空,对性能做了一些测试,今天整理下,把一些参数和截图发上来。Windows服务端测试在Windows上运行服务端,服务端的电脑参数如下: 系统:Windows 10 内存:16GB CPU:...

2018-05-29 00:08:52 304

原创 KonsanNet 网络通信框架实现(第二章)— 会话管理

框架源码地址 GitHub:https://github.com/KonsanAlide/KonsanNet章前阐述 近几天有些忙,就没继续接着上一章写,今天有些空,补充下。 版本0.3往框架里面加入了一个会话管理模块,加入验证功能。 版本0.3依然使用一个监听线程来接受连接,并没有用AcceptEx函数(Windows),也没有...

2018-05-25 22:14:54 175

原创 KonsanNet 网络通信框架实现(第一章)— 架构设计

源码地址 GitHub:https://github.com/KonsanAlide/KonsanNet章前阐述 这一章主要讲的是整个框架的设计思路,其实主要是服务器端部分,这一部分在博客上有很多人讲过,思路上大都相似,只是细节上有所不同,虽然这细节偏偏是决定了性能的关键性,不过本章不深入分析这些细节,只阐述架构,原因如下: 一、因为这Version...

2018-05-16 11:15:33 296

原创 KonsanNet 网络通信框架的设想(C++实现)

如前文所述,我抽了些时间码了一套网络通信的框架代码。现在放在GitHub上:https://github.com/KonsanAlide/KonsanNet设想中这套框架包含如下模块:1.通信服务端模块CXCommunicationServer:支持TCP、UDP两种协议,支持WINDOWS和Linux两种平台,包含会话管理、数据包解析、线程调度管理、数据包分发等模块,大概分了四层,通...

2018-05-15 20:00:31 300

原创 久违了

因忙碌,多年没来CSDN闲逛了,就算是来了,也是匆匆路过,为了解决一些简单问题而去搜索同学们的论坛问答,想想,也很遗憾,没能给后来的小伙子更多的一些帮助,想当年,我也是跟在各位老大后面混过来的,这很不好。或许也是因为像我这类型的同学多了,所以总感觉各种论坛的技术沉淀和继承感少了不少,年年都是老话题,我招人的时候,也深感做应用领域的人越来越多,做基础领域的人越来越少,常遇到的,水平也很一般,研究型的...

2018-05-15 19:21:52 286

原创 Error: 10004 一个封锁操作被对 WSACancelBlockingCall的调用中断 的解决

今天在进行网络通信调试的时候遇到一个错误:10004 一个封锁操作被对 WSACancelBlockingCall的调用中断。错误的发生情况如下: Server:1. 一个线程启动一个socket1 在监听,接收到到来的client连接.2. 同时,启动一个socket2作为client,连接到另外一个MessageServer上,今天因为MessageServer没有启动,所

2010-05-21 12:56:00 9731

原创 tcp文件双通道传输 命令通道和数据通道的关联

开始的设计:1.开一个固定的端口监听,接收命令通道连接。2.开始传输数据的时候,为每个用户临时开一个监听端口,接收数据通道连接。       这样问题在于:数据通道的端口不能用固定的端口来传输数据,这样如果有防火墙,就不知道应该给这个服务器程序开那些端口,即使把这些数据通道的端口限制在一定范围内,实际上还是不好,开的端口过多。 后来因为想到一种处理:     

2009-07-30 13:38:00 2175

空空如也

空空如也

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

TA关注的人

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