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

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

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

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

netty系列之:NIO和netty详解

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

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

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

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

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

netty系列之:channelHandlerContext详解

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

netty系列之:channelPipeline详解

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

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

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

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

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

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

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

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

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

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

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

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

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

netty系列之:channel和channelGroup

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

dart系列之:和null说再见,null使用最佳实践

2022-01-17
阅读 2 分钟
2.1k
null可能是大家在编写程序中最为头疼的一个东西,稍不留意的情况下就有可能使用到了这个空字符。所以dart在2.12引入了nll safety,默认情况下强制所有的类型都不为null,只有在你认为它可以为null的时候才可以设置为null。

netty系列之:一口多用,使用同一端口运行不同协议

2022-01-12
阅读 4 分钟
2.5k
在之前的文章中,我们介绍了在同一个netty程序中支持多个不同的服务,它的逻辑很简单,就是在一个主程序中启动多个子程序,每个子程序通过一个BootStrap来绑定不同的端口,从而达到访问不同端口就访问了不同服务的目的。

dart系列之:手写Library,Library编写最佳实践

2022-01-10
阅读 2 分钟
1.9k
Library是dart用来组织代码的一种非常有用的方式,通过定义不同的Library,可以将非常有用的dart代码进行封装,从而提供给其他的项目使用。虽然我们可以自由使用import或者export来对library进行导入和导入。但是什么样的用法才是最合适的用法呢? 一起来看看吧。

netty系列之:netty对SOCKS协议的支持

2022-01-06
阅读 4 分钟
1.7k
SOCKS是一个优秀的网络协议,主要被用来做代理,它的两个主要版本是SOCKS4和SOCKS5,其中SOCKS5提供了对认证的支持。通常来说我们使用SSH工具可以构建简单的SOCKS协议通道,那么对于netty来说,是怎么提供对SOCKS的支持呢?一起来看看吧。

dart系列之:dart代码最佳实践

2022-01-04
阅读 2 分钟
1.6k
一般来说,这个世界上有三种命名规则,分别是UpperCamelCase,lowerCamelCase和lowercase_with_underscores.

dart系列之:你的地盘你做主,使用Extension对类进行扩展

2021-12-31
阅读 2 分钟
1.7k
但是有些时候扩展类并不是特别好用,首先在有些语言中,有些类是禁止被扩展的。即使可以被扩展,但是扩展之后的类是一个新的类,而不是原来的父类,所以在使用的过程中可能会出现一些类型转换的问题。

netty系列之:从零到壹,搭建一个SOCKS代理服务器

2021-12-29
阅读 6 分钟
2.8k
上一篇文章,我们讲到了netty对SOCKS消息提供了SocksMessage对象的封装,并且区分SOCKS4和SOCKS5,同时提供了连接和响应的各种状态。

dart系列之:dart优秀的秘诀-隔离机制

2021-12-27
阅读 4 分钟
1.9k
之前介绍了很多dart中的异步编程技巧,不知道大家有没有发现一个问题,如果是在java的异步编程中,肯定会提到锁和并发机制,但是对于dart来说,好像从来没有听到多线程和并发的问题,这是为什么呢?

netty系列之:小白福利!手把手教你做一个简单的代理服务器

2021-12-24
阅读 4 分钟
1.7k
爱因斯坦说过:所有的伟大,都产生于简单的细节中。netty为我们提供了如此强大的eventloop、channel通过对这些简单东西的有效利用,可以得到非常强大的应用程序,比如今天要讲的代理。