
Netty
Eric_LanOu
这个作者很懒,什么都没留下…
展开
-
Netty的入门-拆包和粘包的处理
由于是流,拆包和粘包是不可避免的,产生的原因有:1、应用程序write的字节大小大于套接字缓冲区大小;2、进行MMS大小的tcp分段;3、以太网帧的playload大于MTU进行IP分片解决策略有:1、消息定长;2、包尾添加回车符进行分割;3、将消息分为消息头和消息尾,消息头包含表示消息总长度的字段。LineBaseFrameDecoder原创 2016-07-08 14:11:49 · 437 阅读 · 0 评论 -
Netty的入门-基础编程
Server端实现:public class TimeServer { public void bind(int port) throws Exception { // 配置服务端的NIO线程组 EventLoopGroup bossGroup = new NioEventLoopGroup(); // 用于服务端接受客户端的连接 EventLoopGroup worker原创 2016-07-08 14:05:19 · 314 阅读 · 0 评论 -
Netty的入门-UDP协议开发
User Datagram Protocal直接用IP协议进行数据发送,提供的是面向无连接,不可靠的数据投递服务。使用UDP的应用程序必须自己解决数据丢失,重复,排序,差错确认等问题。原创 2016-07-11 17:27:00 · 514 阅读 · 0 评论 -
Netty的入门-编解码技术
Java序列化:实现Serializable接口即可,方便但是缺点很多:1、java私有协议,无法跨语言;2、序列化后的码流太大;3、序列化性能低Server ChannelPipeLine中添加ObjectDecoder,Client ChannelPipeline中添加ObjectEncoder,对象实现Serializable接口。ServerBootstrap b = new原创 2016-07-08 16:48:23 · 378 阅读 · 0 评论 -
Netty的入门 - IO简介
开始前了解下一下几个名词:用户空间:指的是应用程序可以直接访问的地址。内核空间:也是系统空间,指的是应用程序不能直接访问,必须转到内核模式,由操作系统访问。下面描述了Unix下的5钟IO模型:1、阻塞IO模型进程空间调用recvfrom,其系统调用直到数据包到达且复制到应用进程的缓冲区中或者发生错误时才返回,此期间会一直等待2、非阻塞IO模型recv原创 2016-07-07 10:40:44 · 300 阅读 · 0 评论