- 博客(6)
- 收藏
- 关注
原创 Netty的入门-文件传输
在NIO提供类库之前,Java的所有文件操作分为两类:1、基于字节流的InputStream和OutputStream2、基于字符流的Writer和Reader下面看看基于Netty的文件操作:public class FileServer { public static void main(String[] args) { EventLoopGroup boss
2016-07-12 10:22:13
501
原创 Netty的入门-UDP协议开发
User Datagram Protocal直接用IP协议进行数据发送,提供的是面向无连接,不可靠的数据投递服务。使用UDP的应用程序必须自己解决数据丢失,重复,排序,差错确认等问题。
2016-07-11 17:27:00
511
原创 Netty的入门-编解码技术
Java序列化:实现Serializable接口即可,方便但是缺点很多:1、java私有协议,无法跨语言;2、序列化后的码流太大;3、序列化性能低Server ChannelPipeLine中添加ObjectDecoder,Client ChannelPipeline中添加ObjectEncoder,对象实现Serializable接口。ServerBootstrap b = new
2016-07-08 16:48:23
378
原创 Netty的入门-拆包和粘包的处理
由于是流,拆包和粘包是不可避免的,产生的原因有:1、应用程序write的字节大小大于套接字缓冲区大小;2、进行MMS大小的tcp分段;3、以太网帧的playload大于MTU进行IP分片解决策略有:1、消息定长;2、包尾添加回车符进行分割;3、将消息分为消息头和消息尾,消息头包含表示消息总长度的字段。LineBaseFrameDecoder
2016-07-08 14:11:49
435
原创 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
313
原创 Netty的入门 - IO简介
开始前了解下一下几个名词:用户空间:指的是应用程序可以直接访问的地址。内核空间:也是系统空间,指的是应用程序不能直接访问,必须转到内核模式,由操作系统访问。下面描述了Unix下的5钟IO模型:1、阻塞IO模型进程空间调用recvfrom,其系统调用直到数据包到达且复制到应用进程的缓冲区中或者发生错误时才返回,此期间会一直等待2、非阻塞IO模型recv
2016-07-07 10:40:44
300
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人