自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 434

原创 Netty的入门-UDP协议开发

User Datagram Protocal直接用IP协议进行数据发送,提供的是面向无连接,不可靠的数据投递服务。使用UDP的应用程序必须自己解决数据丢失,重复,排序,差错确认等问题。

2016-07-11 17:27:00 446

原创 Netty的入门-编解码技术

Java序列化:实现Serializable接口即可,方便但是缺点很多:1、java私有协议,无法跨语言;2、序列化后的码流太大;3、序列化性能低Server ChannelPipeLine中添加ObjectDecoder,Client ChannelPipeline中添加ObjectEncoder,对象实现Serializable接口。ServerBootstrap b = new

2016-07-08 16:48:23 340

原创 Netty的入门-拆包和粘包的处理

由于是流,拆包和粘包是不可避免的,产生的原因有:1、应用程序write的字节大小大于套接字缓冲区大小;2、进行MMS大小的tcp分段;3、以太网帧的playload大于MTU进行IP分片解决策略有:1、消息定长;2、包尾添加回车符进行分割;3、将消息分为消息头和消息尾,消息头包含表示消息总长度的字段。LineBaseFrameDecoder

2016-07-08 14:11:49 371

原创 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 291

原创 Netty的入门 - IO简介

开始前了解下一下几个名词:用户空间:指的是应用程序可以直接访问的地址。内核空间:也是系统空间,指的是应用程序不能直接访问,必须转到内核模式,由操作系统访问。下面描述了Unix下的5钟IO模型:1、阻塞IO模型进程空间调用recvfrom,其系统调用直到数据包到达且复制到应用进程的缓冲区中或者发生错误时才返回,此期间会一直等待2、非阻塞IO模型recv

2016-07-07 10:40:44 272

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除