Netty
Terisadeng
工作繁忙,私信和评论提的问题可能没时间复现解答(。・_・。)ノI’m sorry~
展开
-
JBoss Marshalling编解码
一、简介JBoss Marshalling是一个Java对象序列化包,对JDK默认的序列化框架进行了优化,但又保持和java.io.Serializable接口的兼容。二、Marshalling开发环境准备1、下载类库由于只涉及到Marshalling的序列化类库,因此只需要下载jboss-marshalling-1.3.0.CR9.jar和jboss-marshalling-se...原创 2019-01-10 14:54:11 · 1535 阅读 · 0 评论 -
Netty开发HTTP文件服务器
开发HTTP协议的服务端涉及到请求和响应,使用的类io.netty.handler.codec.http.HttpHeaderNames和io.netty.handler.codec.http.HttpHeaderUtil在netty-all-5.0.0.Alpha2.jar包中才有在netty-all-5.0.0.Alpha1.jar中没有,需要注意。netty-all-5.0.0.Alpha2...原创 2019-01-11 16:41:02 · 3032 阅读 · 5 评论 -
使用DelimiterBasedFrameDecoder进行消息分隔
在使用Netty进行TCP消息传输时,为了上层协议能够对消息正确区分,避免粘包和拆包导致的问题,一般可以通过消息定长、将回车换行符作为消息结束符、将特殊的分隔符作为消息的结束标志或者在消息头中定义长度字段来标识消息的总长度。其中常用的通过分隔符作为消息的结束标志就涉及到Netty的DelimiterBasedFrameDecoder类,服务端如下:import io.netty.bootst...原创 2019-01-08 17:02:21 · 3050 阅读 · 3 评论 -
使用Netty进行WebSocket协议开发
一、简介WebSocket协议是HTML5新增的协议,解决了HTTP请求只能通过浏览器发起,服务端被动接收的问题,HTTP协议是半双工协议,数据可以在客户端和服务端两个方向上传输,但是不能同时传输,而WebSocket是全双工协议,一旦建立连接就可以两个方向同时传输数据。WebSocket连接的建立也是通过HTTP请求发起TCP握手连接,它在客户端通过js发起,在消息头部增加Upgrade: ...原创 2019-01-14 16:35:13 · 3152 阅读 · 2 评论 -
使用Netty进行UDP协议开发
UDP是一种无连接协议,相对于TCP协议而言,简单高效,适用于传输视频、音频等及时性要求高,但是准确率要求低的数据。Netty对UDP传输数据也进行了封装,实现起来特别简单。首先是编写服务端启动类:import io.netty.bootstrap.Bootstrap;import io.netty.channel.ChannelOption;import io.netty.chan...原创 2019-01-14 17:29:32 · 24347 阅读 · 2 评论 -
Google ProtoBuf用法
一、简介Google Protobuf是Netty中常用的编解码工具,Protobuf支持数据结构化一次可以到处使用,且可以跨语言使用,通过代码生成工具可以生成不同语言版本的源代码,还可以在使用不同版本的数据结构进程间进行数据传递,实现数据结构向前兼容。这个序列化框架相对于Java本身的序列化API具有性能高,适合不同语言开发的程序之间传输数据。二、环境搭建1、软件包下载使用Pro...原创 2019-01-10 10:57:40 · 5004 阅读 · 0 评论 -
使用Netty进行文件传输
一、简介使用Netty进行文件传输主要涉及到FileChannel文件通道,它用来连接文件,可以通过这个通道读写文件。在使用FileChannel之前必须先打开它,FileChannel无法直接打开,可以通过InputStream、OutputStream或RandomAccessFile来获取FileChannel实例,比如:RandomAccessFile file=new Rand...原创 2019-01-16 17:09:13 · 21439 阅读 · 2 评论