netty系列之:java中的base64编码器

2022-04-08
阅读 4 分钟
1.6k
什么是Base64编码呢?在回答这个问题之前,我们需要了解一下计算机中文件的分类,对于计算机来说文件可以分为两类,一类是文本文件,一类是二进制文件。

网络协议之:socket协议详解之Unix domain Socket

2022-04-06
阅读 4 分钟
2.9k
之前的文章我们讲到了Socket中的Stream Socket和Datagram Socket,这两种Socket通常分别是基于tcp和udp协议来进行数据的传输。这两种Socket都有一个共同的特点,那就是需要一个IP地址和端口来建立客户端和服务器端的连接。

网络协议之:socket协议详解之Datagram Socket

2022-04-01
阅读 4 分钟
1.8k
上一篇文章我们讲解了Socket的分类和最常用到的Stream Socket,Stream Socket一般是基于TCP协议的,所以我们经常在web服务中能够看到他们的身影。当然TCP协议有个孪生兄弟叫做UDP,那么基于UDP来做传输协议的socket协议就叫做Datagram Socket,今天我们一起来详细了解一下Datagram Socket。

网络协议之:socket协议详解之Socket和Stream Socket

2022-03-30
阅读 5 分钟
1.7k
不管是在普通的网络编程中还是在netty中,都经常会提到一个词叫做socket,好像socket是一个神奇的东西,使用socket我们可以建立客户端到服务器端的连接,并且和进行客户端和服务器端的通讯,那么socket到底是什么呢?它有哪些分类呢?一起来看看吧。

java高级用法之:调用本地方法的利器JNA

2022-03-28
阅读 6 分钟
3.1k
JAVA是可以调用本地方法的,官方提供的调用方式叫做JNI,全称叫做java native interface。要想使用JNI,我们需要在JAVA代码中定义native方法,然后通过javah命令创建C语言的头文件,接着使用C或者C++语言来实现这个头文件中的方法,编译源代码,最后将编译后的文件引入到JAVA的classpath中,运行即可。

java高级用法之:无所不能的java,本地方法调用实况

2022-03-23
阅读 4 分钟
1.6k
但事实情况是,无数的程序员从小白到放弃,鉴于C++的难度,最后都投入了java的怀抱。JAVA以他宽广的胸怀接纳了一众无法登顶C++的程序员。

高级IO模型之kqueue和epoll

2022-03-21
阅读 3 分钟
2.5k
任何一个程序都离不开IO,有些是很明显的IO,比如文件的读写,也有一些是不明显的IO,比如网络数据的传输等。那么这些IO都有那些模式呢?我们在使用中应该如何选择呢?高级的IO模型kqueue和epoll是怎么工作的呢?一起来看看吧。

Github又悄悄升级了,这次的变化是大文件的存储方式

2022-03-18
阅读 3 分钟
1.1k
github是大家常用的代码管理工具,也被戏称为世界上最大的程序员交友网站,它的每次升级都会影响很多用户。在我的个人github网站上,之前在做JAVA NIO demo的时候上传了一个自制的大文件,最近对这个项目进行了一些修改,但是却上传不上github网站了,查看报错的原因,就是说项目中有一个大文件无法上传,现在github提供...

netty系列之:netty中各不同种类的channel详解

2022-03-16
阅读 5 分钟
2.4k
channel是连接客户端和服务器端的桥梁,在netty中我们最常用的就是NIO,一般和NioEventLoopGroup配套使用的就是NioServerSocketChannel和NioSocketChannel,如果是UDP协议,那么配套使用的就是NioDatagramChannel,如果是别的协议还有其他不同的Channel类型。

网络标准之:IANA定义的传输编码

2022-03-14
阅读 2 分钟
1.6k
IANA的全称是The Internet Assigned Numbers Authority,也叫做互联网数字分配机构,是一个负责协调互联网的事务让Internet正常运作的机构。它定义了几个transfer encodings方式。

网络标准之:永远是1.0版本的MIME

2022-03-11
阅读 3 分钟
1.9k
无规矩不成方圆,无标准不成网络通信。正是在各种网络协议和标准的基础之上,才构建了我们现在流行的互联网。今天给大家介绍的就是一个网络标准格式,叫做MIME,它的全称是Multipurpose Internet Mail Extensions,翻译过来就是多用途Internet邮件扩展。

netty系列之:NIO和netty详解

2022-03-09
阅读 13 分钟
2.9k
netty为什么快呢?这是因为netty底层使用了JAVA的NIO技术,并在其基础上进行了性能的优化,虽然netty不是单纯的JAVA nio,但是netty的底层还是基于的是nio技术。

netty系列之:EventLoop,EventLoopGroup和netty的默认实现

2022-03-07
阅读 4 分钟
2.2k
在netty中不管是服务器端的ServerBootstrap还是客户端的Bootstrap,在创建的时候都需要在group方法中传入一个EventLoopGroup参数,用来处理所有的ServerChannel和Channel中所有的IO操作和event。

netty系列之:EventExecutor,EventExecutorGroup和netty中的实现

2022-03-04
阅读 8 分钟
2.2k
netty作为一个异步NIO框架,多线程肯定是它的基础,但是对于netty的实际使用者来说,一般是不需要接触到多线程的,我们只需要按照netty框架规定的流程走下去,自定义handler来处理对应的消息即可。

netty系列之:channelHandlerContext详解

2022-03-02
阅读 7 分钟
2.2k
我们知道ChannelHandler有两个非常重要的子接口,分别是ChannelOutboundHandler和ChannelInboundHandler,基本上这两个handler接口定义了所有channel inbound和outbound的处理逻辑。

netty系列之:channelPipeline详解

2022-02-28
阅读 7 分钟
1.6k
我们在介绍channel的时候提到过,几乎channel中所有的实现都是通过channelPipeline进行的,作为一个pipline,它到底是如何工作的呢?

数据分析实际案例之:pandas在餐厅评分数据中的使用

2022-02-25
阅读 4 分钟
2k
简介为了更好的熟练掌握pandas在实际数据分析中的应用,今天我们再介绍一下怎么使用pandas做美国餐厅评分数据的分析。餐厅评分数据简介数据的来源是UCI ML Repository,包含了一千多条数据,有5个属性,分别是:userID: 用户IDplaceID:餐厅IDrating:总体评分food_rating:食物评分service_rating:服务评分我们使用pa...

数据分析实际案例之:pandas在泰坦尼特号乘客数据中的使用

2022-02-24
阅读 8 分钟
2k
1912年4月15日,号称永不沉没的泰坦尼克号因为和冰山相撞沉没了。因为没有足够的救援设备,2224个乘客中有1502个乘客不幸遇难。事故已经发生了,但是我们可以从泰坦尼克号中的历史数据中发现一些数据规律吗?今天本文将会带领大家灵活的使用pandas来进行数据分析。

dart系列之:集合使用最佳实践

2022-02-23
阅读 3 分钟
1.7k
dart中有四种集合,分别是Set,List,Map和queues。这些集合在使用中需要注意些什么呢?什么样的使用才是最好的使用方法呢?一起来看看吧。

netty系列之:channel,ServerChannel和netty中的实现

2022-02-22
阅读 9 分钟
1.4k
我们知道channel是netty中用于沟通ByteBuf和Event的桥梁,在netty服务的创建过程中,不管是客户端的Bootstrap还是服务器端的ServerBootstrap,都需要调用channel方法来指定对应的channel类型。

netty系列之:Bootstrap,ServerBootstrap和netty中的实现

2022-02-21
阅读 11 分钟
1.9k
虽然netty很强大,但是使用netty来构建程序却是很简单,只需要掌握特定的netty套路就可以写出强大的netty程序。每个netty程序都需要一个Bootstrap,什么是Bootstrap呢?Bootstrap翻译成中文来说就是鞋拔子,在计算机世界中,Bootstrap指的是引导程序,通过Bootstrap可以轻松构建和启动程序。

netty系列之:可以自动通知执行结果的Future,有见过吗?

2022-02-18
阅读 4 分钟
1.7k
在我的心中,JDK有两个经典版本,第一个就是现在大部分公司都在使用的JDK8,这个版本引入了Stream、lambda表达式和泛型,让JAVA程序的编写变得更加流畅,减少了大量的冗余代码。

netty系列之:channel和channelGroup

2022-02-17
阅读 6 分钟
2.8k
channel是netty中数据传输和数据处理的渠道,也是netty程序中不可或缺的一环。在netty中channel是一个接口,针对不同的数据类型或者协议channel会有具体的不同实现。

netty系列之:不用怀疑,netty中的ByteBuf就是比JAVA中的好用

2022-02-16
阅读 3 分钟
1.8k
netty作为一个优秀的的NIO框架,被广泛应用于各种服务器和框架中。同样是NIO,netty所依赖的JDK在1.4版本中早就提供nio的包,既然JDK已经有了nio的包,为什么netty还要再写一个呢?

netty系列之:让TCP连接快一点,再快一点

2022-02-15
阅读 3 分钟
2.2k
经典的TCP三次握手大家应该很熟悉了,三次握手按道理说应该是最优的方案了,当然这是对于通用的情况来说的。那么在某些特殊的情况下是不是可以提升TCP建立连接的速度呢?

netty系列之:JVM中的Reference count原来netty中也有

2022-02-14
阅读 4 分钟
1.8k
为什么世界上有这么多JAVA的程序员呢?其中一个很重要的原因就是JAVA相对于C++而言,不需要考虑对象的释放,一切都是由垃圾回收器来完成的。在崇尚简单的现代编程世界中,会C++的高手越来越少,会JAVA的程序员越来越多。

netty系列之:真正的平等–UDT中的Rendezvous

2022-02-11
阅读 3 分钟
1.6k
在我们之前提到的所有netty知识中,netty好像都被分为客户端和服务器端两部分。服务器端监听连接,并对连接中的消息进行处理。而客户端则向服务器端建立请求连接,从而可以发送消息。

netty系列之:选byte还是选message?这是一个问题

2022-02-10
阅读 4 分钟
1.8k
简介UDT给了你两种选择,byte stream或者message,到底选哪一种呢?经验告诉我们,只有小学生才做选择题,而我们应该全都要!类型的定义UDT的两种类型是怎么定义的呢?翻看com.barchart.udt包,可以发现这两种类型定义在TypeUDT枚举类中。 {代码...} 一个叫做STREAM,它的code是1。一个叫做DATAGRAM,他的code是2.根据两...

netty系列之:请netty再爱UDT一次

2022-01-21
阅读 6 分钟
1.9k
UDT是一个非常优秀的协议,可以提供在UDP协议基础上进行高速数据传输。但是可惜的是在netty 4.1.7中,UDT传输协议已经被标记为Deprecated了!

netty系列之:好马配好鞍,为channel选择配套的selector

2022-01-19
阅读 5 分钟
1.8k
我们知道netty的基础是channel和在channel之上的selector,当然作为一个nio框架,channel和selector不仅仅是netty的基础,也是所有nio实现的基础。