STM32工作笔记0095---MDK KEIL5宏定义报红叉

技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152需要改个配置:默认是勾选上的,把这个勾选掉
分类: 其他 发布时间: 09-21 12:38 阅读次数: 0

STM32工作笔记0096---用sprintf分配内存

技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152//系统设置参数typedef struct { char BackLightTime[8]; //背光时间 char NetworkType[8]; //网络制式 char Dual_SIM[8]; //双卡选择 char LanChoice[8]; //语言选择 char ContextModel[8]; //情景模式} Sy
分类: 其他 发布时间: 09-21 12:37 阅读次数: 0

Netty工作笔记0012---MappedByteBuffer使用

技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152继承情况写个例子测试,这里指定了0这个下标开始,然后只能修改5个字节,那么就只能修改,0,1,2,3,4这5个下标的字节可以看到修改前的文件:修改完成后加个输出.可以看到修改的效果.bebug的看看,实际的类型是mappedbuffer的实际类型是directbuffer因为只能修改0,1,2,3,4这5个下标的字节,所以看到如果修改5的话,
分类: 其他 发布时间: 09-21 12:37 阅读次数: 0

Netty工作笔记0013---Buffer的分散和聚合

技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152数据通信的时候使用buffer数组来实现,把数据放到多个数组中去,然后放到通道里,这个是分散,然后从多个数组,读出来,显示出来叫聚合.上面是,说从通道中读取数据放到byteBuffers中去,直接放数组.,一次放一个字节.自动的,放满一个数组,就放到下一个数组中去.报错是因为不支持lambda表达式,这个可以修改一下编译器版本就可以了放到数组中以后,然后
分类: 其他 发布时间: 09-21 12:37 阅读次数: 0

Netty工作笔记0014---Channel和Buffer梳理

技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152
分类: 其他 发布时间: 09-21 12:37 阅读次数: 0

Netty工作笔记0015---Selector介绍和原理

技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152.这里说IO线程NioEventLoop聚合了selector,可以这样理解,这个上面的这个Thread就是NioEventLoop然后这个线程对应的selector,就是这个selector聚合了很多个通道,或者说NioEventLoop线程通过selector来聚合了很多的通道....
分类: 其他 发布时间: 09-21 12:36 阅读次数: 0

Netty工作笔记0016---Selector API介绍

技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152这个 open方法类似于创建了一个selector的对象去看看这个selector的源码selector的实现类然后这里selector是怎么管理各个通道的呢,是通过select这个方法,这个方法回去监控所有的通道看看,哪个通道有事件发生了,这个事件,可以是读数据,写数据或者等待accept等,如果监听到,某个通道有事件发生了,那么就把这个通道对应的selectio
分类: 其他 发布时间: 09-21 12:36 阅读次数: 0

Netty工作笔记0017---Selectionkey在NIO体系

技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152这个就是说,socketchannel可以注册到这个selector上去,每个socketchannel对应一个通道, selectionkey对应一个这个,可以看到socketchannel中有个register可以把socketchannel注册到某个selector上去,第二个参数是ops,是要监听这个socketchannel的什么事件,是write啊,还是read什么的.
分类: 其他 发布时间: 09-21 12:36 阅读次数: 0

Netty工作笔记0018---NIO编写,快速入门---编写服务器

技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152上面是这个服务器端的过程新建一个serversocketchannel,新建一个selector,把serversocketchannel注册到selector上去.然后,让selector去扫描,扫描到有连接的时候,就返回,对应的selectionkey集合,没有就继续等待1s.1s如果没有,再等待1s这样.如果等到了,连接的话,得到所有的selectio
分类: 其他 发布时间: 09-21 12:36 阅读次数: 0

Netty工作笔记0019---NIO快速入门--编写客户端

技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152客户端要比服务器端简单这里要把这个socketchannel设置为非阻塞的.然后连接到服务器然后如果还没有连接到服务器的话,会进入这个while中,就不用阻塞,就可以在这里做其他的事情如果连接上了,那么就往下走注意这里有个wrap,这个的功能,其实就是把这个字符串自动转换成byte数组.这里把这个字符串,写入到channel中去,然后这个socketchanne
分类: 其他 发布时间: 09-21 12:35 阅读次数: 0

Netty工作笔记0020---NIO服务器客户端总结

技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:1709331523
分类: 其他 发布时间: 09-21 12:35 阅读次数: 0

Netty工作笔记0021---SelectionKey API

技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152可以看到这个selectionkey,有几个值,每个都代表这个通道是读,还是写,还是做什么操作看看这个selector的实际类型是windowsSelectorImpl可以看到这个selectorImpl中有这个selectionkey的hashset集合可以去服务器端代码看看,这里selector中的keys是获取所有的selector中的所有的通道的selectionk
分类: 其他 发布时间: 09-21 12:35 阅读次数: 0

Netty工作笔记0022---SocketChannel API

技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152这里注意,虽然这个accept,这个serversocketchannel的accept是阻塞的,但是,基于事件驱动以后,就变成非阻塞的了,因为,当有事件的时候再去accept,接着就可以响应,所以变成非阻塞的了.可以看到不管是serversocketchannel还是socketchannel,都是继承了AbstractSelectableChannel,都实现了Networ
分类: 其他 发布时间: 09-21 12:35 阅读次数: 0

Netty工作笔记0023---NIO 网络编程应用--群聊系统1---编写服务器1

技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152先编写服务器端:构造方法中构造服务器结构体监听客户端监听到来的客户端了以后,得到客户端的socketchannel然后,注册到这个selector上,然后提示然后设置事件是读取事件...上线了.然后如果selector监听到了读取事件那么就做对应的处理....
分类: 其他 发布时间: 09-21 12:34 阅读次数: 0

Netty工作笔记0024---NIO 网络编程应用--群聊系统2--服务器编写2

技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152注意发送消息的时候,要排除发消息的他自己.开始写给其他客户端发送消息.这里读取对应的发过来的通道的消息.就是发送消息的通道,把消息发送到服务器,然后这些消息,再转发到其他的两个客户端如果发送消息的通道发送的数据大于0的话,那么就向其他客户端转发消息转发消息就是要获取所有的selectionkey,然后还要排除自己这channel当然刚要向其他客户端转发消
分类: 其他 发布时间: 09-21 12:34 阅读次数: 0

Netty工作笔记0025---NIO 网络编程应用--群聊系统3--客户端编写1

技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152这个是客户端要做的事情.然后这里构造方法,连接服务器这里构造器完成初始化,主要是连接服务器,设置socketchannel的非阻塞,然后设置socketchannel注册到selector,然后设置socketchannel的模式是读取,这个把本地地址做为用户名然后写发送信息方法sendInfo,就是向socketchannel中写入数据.然后写读取服务器发过来
分类: 其他 发布时间: 09-21 12:34 阅读次数: 0

Netty工作笔记0025---NIO 网络编程应用--群聊系统4--客户端编写2

技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152然后组织客户端去客户端中去新建一个线程去调用客户端的,readInfo去读取数据就可以了.然后再去写个循环,一直等待,控制台发送消息就可以了.然后服务器端,写个main方法,启动监听然后服务器端,可以看到在等待连接启动客户端的时候,报错了原因是没有接收一下结果socketchannel= 一下就可以了然后再去启动一下看看,可以看到还有问题,这个说
分类: 其他 发布时间: 09-21 12:34 阅读次数: 0

Netty工作笔记0025---NIO与零拷贝原理剖析

技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152看看传统的IO,copy文件需要读取和写入传统的IO,从底层来看是怎么样的呢这里左侧是用户态,中间是内核态,右边是用户态,然后右边又是内核态在底层,IO是这样做的,先通过DMA,把数据从硬件中copy到内核中,然后再通过cpu把数据从内核中,copy到user buffer 中,在这个user buffer中,可以进行数据的修改,然后把数据再从user buffer 中
分类: 其他 发布时间: 09-21 12:33 阅读次数: 0

Netty工作笔记0026---NIO零拷贝应用案例

技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152.传统IO的服务器端,这里从客户端接收到数据以后,不再进行写入文件操作了.读取本地文件,然后发送给远程服务器这里测试一下copy这个文件需要多少时间可以看到先启动服务器,再启动客户端copy需要60ms然后看看如何使用NIO实现零copy先写服务器端这里也是从远程socketchannel,也就是远程客户端读取数据,到bytebuffer中去
分类: 其他 发布时间: 09-21 12:33 阅读次数: 0

Netty工作笔记0026---零拷贝AIO内容梳理

技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152梳理一下前面的零copy知识.
分类: 其他 发布时间: 09-21 12:33 阅读次数: 0