netty
iteye_14994
这个作者很懒,什么都没留下…
展开
-
Netty工具类HashedWheelTimer
Netty工具类HashedWheelTimer http://my.oschina.net/haogrgr/blog/489320 netty中的Timer管理,使用了的Hashed time Wheel的模式,Time Wheel翻译为时间轮,是用于实现定时器timer的经典算法。我们看看netty的HashedWheelTimer的一个测试的例子,先new一个H...原创 2016-08-19 17:18:00 · 429 阅读 · 0 评论 -
setsockopt中参数之SO_REUSEADDR的意义
1、一般来说,一个端口释放后会等待两分钟之后才能再被使用,SO_REUSEADDR是让端口释放后立即就可以被再次使用。 SO_REUSEADDR用于对TCP套接字处于TIME_WAIT状态下的socket,才可以重复绑定使用。server程序总是应该在调用bind()之前设置SO_REUSEADDR套接字选项。TCP,先调用close()的一方会进入TIME_WAIT状...原创 2014-08-27 17:51:08 · 463 阅读 · 0 评论 -
ChannelOption.TCP_NODELAY, true->浅谈tcp_nodelay的作用
在TCP/IP协议中,无论发送多少数据,总是要在数据前面加上协议头,同时,对方接收到数据,也需要发送ACK表示确认。为了尽可能的利用网络带宽,TCP总是希望尽可能的发送足够大的数据。这里就涉及到一个名为Nagle的算法,该算法的目的就是为了尽可能发送大块数据,避免网络中充斥着许多小数据块。 TCP_NODELAY就是用于启用或关于Nagle算法。如果要求高实时性,有数据发送时就...原创 2014-08-27 17:50:57 · 429 阅读 · 0 评论 -
java socket参数详解:SendBufferSize和ReceiveBufferSize
java socket参数详解:SendBufferSize和ReceiveBufferSize TCP发送缓存区和接收缓存区,默认是8192,一般情况下足够了,而且就算你增加了发送缓存区,对方没有增加它对应的接收缓冲,那么在TCP三握手时,最后确定的最大发送窗口还是双方最小的那个缓冲区,就算你无视,发了更多的数据,那么多出来的数据也会被丢弃。除非双方都协商好。 ...原创 2014-08-26 10:01:36 · 3919 阅读 · 0 评论 -
ChannelOption.SO_BACKLOG, 1024-> java socket参数详解:BackLog
java socket参数详解:BackLog 输入连接指示(对连接的请求)的最大队列长度被设置为 backlog 参数。如果队列满时收到连接指示,则拒绝该连接。注意: 1. backlog参数必须是大于 0 的正值。如果传递的值等于或小于 0,则假定为默认值。 2. 经过测试这个队列是按照FIFO(先进先出)的原则。3. 如果将accept这个函数放在一个循环体中时,back...原创 2014-08-26 09:37:54 · 872 阅读 · 0 评论 -
java socket参数详解:SoLinger
java socket参数详解:SoLinger 启用/禁用具有指定逗留时间(以秒为单位)的 SO_LINGER。最大超时值是特定于平台的。 该设置仅影响套接字关闭。默认值为-1,表示禁用。这个Socket选项可以影响close方法的行为。在默认情况下,当调用close方法后,将立即返回;如果这时仍然有未被送出的数据包,那么这些数据包将被丢弃。如果将linger参数设为一个正...原创 2014-08-26 09:31:29 · 410 阅读 · 0 评论 -
ChannelOption.SO_TIMEOUT, 5000->java socket参数详解:SoTimeout
java socket参数详解:SoTimeout 用于设置接受数据的等待的超时时间,单位为毫秒,它的默认值是0,表示无限等待。 设置socket调用InputStream读数据的超时时间,以毫秒为单位,如果超过这个时候,会抛出java.net.SocketTimeoutException。当输入流的read方法被阻塞时,如果设置timeout(timeout的单位...原创 2014-08-26 09:19:27 · 3233 阅读 · 0 评论 -
ChannelOption.SO_KEEPALIVE, true->java socket参数详解:KeepAlive
当设置为true的时候,TCP会实现监控连接是否有效,当连接处于空闲状态的时候,超过了2个小时,本地的TCP实现会发送一个数据包给远程的 socket,如果远程没有发回响应,TCP会持续尝试11分钟,知道响应为止,如果在12分钟的时候还没响应,TCP尝试关闭socket连接。 keepalive不是说TCP的常连接,当我们作为服务端,一个客户端连接上来,如果设置了keeplive...原创 2014-08-26 07:47:34 · 3931 阅读 · 0 评论 -
Netty 5用户指南
Netty 5用户指南 原文地址:http://netty.io/wiki/user-guide-for-5.x.html 译者:光辉勇士 校对:郭蕾前言 问题 现如今我们使用通用的应用程序或者类库来实现系统之间地互相访问,比如我们经常使用一个HTTP客户端来从web服务器上获取信息,或者通过web service来执行一个远程的调用。 ...原创 2014-08-18 15:11:19 · 71 阅读 · 0 评论 -
netty4.0.23 初学的demo
netty4.0.23 初学的demo 例子共4个文件,用到的jar包有:netty-all-4.0.23.Final.jarlog4j.jar (apache的)commons-logging-1.1.1.jar(apache的) 文件 TcpServerHandler package test.netty;import org.apa...原创 2014-08-17 14:34:18 · 115 阅读 · 0 评论 -
LoggingHandler
LoggingHandler netty自带一个日志记录的Handler,叫LoggingHandler,这个Handler使用netty的日志框架打印日志,而netty默认 的日志是java的日志框架java logger,而java的日志框架默认级别是INFO级别,所以需要我们在pipeline中加入此Handler,则可以打印netty的运行日志。 ...原创 2016-08-20 19:53:30 · 1702 阅读 · 0 评论 -
StringEncoder和StringDecoder
StringEncoder和StringDecoder 通常我们也习惯将编码(Encode)称为序列化(serialization),它将对象序列化为字节数组,用于网络传输、数据持久化或者其它用途。反之,解码(Decode)/反序列化(deserialization)把从网络、磁盘等读取的字节数组还原成原始对象(通常是原始对象的拷贝),以方便后续的业务逻辑操作。 从网络读取...原创 2016-08-20 15:11:44 · 5147 阅读 · 1 评论 -
exceptionCaught
exceptionCaught 事件处理方法由一个ExceptionEvent异常事件调用,这个异常事件起因于Netty的I/O异常或一个处理器实现的内部异常。多数情况下,捕捉 到的异常应当被记录下来,并在这个方法中关闭这个channel通道。当然处理这种异常情况的方法实现可能因你的实际需求而有所不同,例如,在关闭这个连 接之前你可能会发送一个包含了错误码的响应消息。 ...原创 2016-08-20 14:59:13 · 4128 阅读 · 1 评论 -
InBoundHandler和OutBoundHandler
一个Inbound事件通常由Inbound handler来处理。一个Inbound handler通常处理在IO线程产生的Inbound数据。Inbound数据通过真实的输入操作如 SocketChannel#read(ByteBuffer)来获取。如果一个inbound事件越过了最上面的inbound handler,该事件将会被抛弃到而不会通知你或者如果你需要关注,打印出日志。...原创 2016-08-20 14:27:58 · 1359 阅读 · 0 评论 -
netty的IdleStateHandler
netty的IdleStateHandler 网络连接中,处理Idle事件是很常见的,一般情况下,客户端与服务端在指定时间内没有任何读写请求,就会认为连接 是idle的。此时,客户端需要向服务端发送ping消息,来维持服务端与客户端的链接。那么怎么判断客户端在指定时间里没有任何读写请求呢?netty 中为我们提供一个特别好用的IdleStateHandler来干这个苦差事!请看下面代码...原创 2016-08-19 20:10:11 · 333 阅读 · 0 评论 -
Netty实例-简单的服务端-客户端实现,注释详细
Netty实例-简单的服务端-客户端实现,注释详细 原文 http://blog.csdn.net/jiangtao_st/article/details/38116593 1.Netty Server端实现 /** * * <p> * Netty Server Simple * </p> * * @author ...原创 2014-09-19 15:34:13 · 136 阅读 · 0 评论