Netty
文章平均质量分 92
VCHH
这个作者很懒,什么都没留下…
展开
-
netty 二进制收发
(文章转自:hankchen,http://www.blogjava.net/hankchen)Netty是一个高性能的NIO通信框架,提供异步的、事件驱动的网络编程模型。使用Netty可以方便用户开发各种常用协议的网络程序。例如:TCP、UDP、HTTP等等。Netty的最新版本是3.2.7,官网地址是: http://www.jboss.org/netty 本文的主转载 2016-05-25 09:41:54 · 6191 阅读 · 0 评论 -
Netty版本升级血泪史之线程篇
1. 背景1.1. Netty 3.X系列版本现状根据对Netty社区部分用户的调查,结合Netty在其它开源项目中的使用情况,我们可以看出目前Netty商用的主流版本集中在3.X和4.X上,其中以Netty 3.X系列版本使用最为广泛。Netty社区非常活跃,3.X系列版本从2011年2月7日发布的netty-3.2.4 Final版本到2014年12月17日发布的netty-3.1转载 2016-07-12 14:43:33 · 898 阅读 · 0 评论 -
Netty(六)UDP在netty中的使用
关于UDP的介绍,这里不在阐述。相比于TCP而言,UDP不存在客户端和服务端的实际链接,因此不需要为连接(ChannelPipeline)设置handler。 服务端:SearchServer.javapackage nettytest.udptest.udptest1;import io.netty.bootstrap.Bootstrap;import io.netty原创 2016-10-09 16:10:41 · 10197 阅读 · 2 评论 -
Netty (二) 入门
在上篇《Netty(一)引题》中,分别对AIO,BIO,PIO,NIO进行了简单的阐述,并写了简单的demo。但是这里说的简单,我也只能呵呵了,特别是NIO、AIO(我全手打的,好麻烦)。在开始netty开发TimeServer之前,先回顾下NIO进行服务端开发的步骤:1.创建ServerSocketChannel,配置它为非阻塞;2.绑定监听,配置TCP参数,如backlog大小;3原创 2016-09-30 14:01:29 · 509 阅读 · 0 评论 -
用Netty开发中间件:高并发性能优化
最近在写一个后台中间件的原型,主要是做消息的分发和透传。因为要用Java实现,所以网络通信框架的第一选择当然就是Netty了,使用的是Netty 4版本。Netty果然效率很高,不用做太多努力就能达到一个比较高的tps。但使用过程中也碰到了一些问题,个人觉得都是比较经典而在网上又不太容易查找到相关资料的问题,所以在此总结一下。1.Context Switch过高压测时用nmon监控内核,发转载 2016-10-14 14:01:33 · 1232 阅读 · 0 评论 -
Node.js与网络:Node.js对TCP、UDP、Socket、HTTP等协议的实现和支持
OSI七层模型是不同计算机或通信系统间互联的标准体系和框架,在OSI中包括一系列标准和协议,如:TCP/IP、UDP、HTTP等,在Node.js中提供了对这些协议的实现和支持,如:net模块提供了对TCP、Socket的封装和支持,dgram模块提供了对UDP的封装和支持、http模块进一步封装了TCP协议提供了对HTTP的支持。本文对网络中相关协议、概念及Node.js中对相关协议的实现模块做转载 2016-10-25 15:09:48 · 5395 阅读 · 0 评论 -
Netty(一) 引题
本文介绍Java BIO(同步阻塞IO),伪异步IO,NIO(非阻塞IO),AIO(异步IO)这四种IO的情况,并对不同IO模型作比较。目录1.BIO2.伪异步IO3.NIO4.AIO5.四种IO比较6.BIO\伪异步IO\NIO\AIO源码下载 1.BIO采用BIO通信模型的服务器,通常由一个独立的Acceptor线程负责监听客户端的连接,它接收到客户端连转载 2016-09-29 16:46:38 · 639 阅读 · 0 评论 -
Netty框架基于UDP实战(一):局域网扫描功能的实现
环境:compile 'io.netty:netty-all:4.1.2.Final'服务端:SearchServer.javapackage nettytest.udp;import io.netty.bootstrap.Bootstrap;import io.netty.buffer.ByteBuf;import io.netty.buffer.Unpoo原创 2016-09-29 20:39:35 · 2394 阅读 · 1 评论 -
Netty (三) TCP粘包和拆包解决方案
tcp是一个“流”的协议,一个完整的包可能会被TCP拆分成多个包进行发送,也可能把小的封装成一个大的数据包发送,这就是所谓的TCP粘包和拆包问题。粘包、拆包问题说明假设客户端分别发送数据包D1和D2给服务端,由于服务端一次性读取到的字节数是不确定的,所以可能存在以下4种情况。1.服务端分2次读取到了两个独立的包,分别是D1,D2,没有粘包和拆包;2.服务端一次性接收了两个包,D1和原创 2016-09-30 15:11:01 · 1416 阅读 · 0 评论 -
Netty (四) 分隔符和定长解码器的使用
TCP以流的形式进行数据传输,上层的应用协议为了对消息进行划分,往往采用如下的4种方式。(1)消息长度固定,累计读到长度总和为定长len的报文后,就认为读取到了一个完整的消息;然后重新开始读取下一个“完整”的数据包;(2)将回车换行符作为消息结束符,如ftp协议;(3)将特殊的分隔符作为消息的结束标识,回车换行符j是一种特殊的分隔符;(4)通过在消息头中定义的长度字段表示消息的总长原创 2016-09-30 16:24:26 · 6393 阅读 · 4 评论 -
以太网帧格式
1 以太网相关背景 以太网这个术语通常是指由DEC,Intel和Xerox公司在1982年联合公布的一个标准,它是当今TCP/IP采用的主要的局域网技术,它采用一种称作CSMA/CD的媒体接入方法。几年后,IEEE802委员会公布了一个稍有不同的标准集,其中802.3针对整个CSMA/CD网络,802.4针对令牌总线网络,802.5针对令牌环网络;此三种帧的通用部分由802.2原创 2016-07-23 16:05:58 · 3547 阅读 · 0 评论 -
Netty解决半包(TCP粘包/拆包导致)读写问题
摘要使用Netty进行异步IO编程,同事问我粘包/拆包问题如何处理,所以抽空分析一下TCP粘包/拆包问题的产生;Netty提供了多种编解码器用于处理半包问题,熟练掌握了类库的应用,TCP粘包问题变得很容易。TCP粘包/拆包TCP是个"流"协议,所谓流,就是没有界限没有分割的一串数据。TCP会根据缓冲区的实际情况进行包划分,一个完整的包可能会拆分成多个包进行发送,也用可能把多原创 2016-07-23 15:50:03 · 11006 阅读 · 0 评论 -
Netty 4.1.2.Final 和 4.0.38.Final 更新内容
Netty 4.1.2.Final 和 4.0.38.Final 发布了。4.0.38 和 4.1.2.Final 的共同更新:Be able to use Netty in JDK9 (#5475), (#5474 ), (#5473)Allow to inject RejectedExecutionHandler for different EventLoops原创 2016-07-23 15:45:03 · 1588 阅读 · 0 评论 -
从0到1 ▏Netty编解码框架之多种常用解码器使用示例解析
来自:http://weiyoux.com/keji/hulianwang/17822.html通常我们也习惯将编码(Encode)称为序列化(serialization),它将对象序列化为字节数组,用于网络传输、数据持久化或者其它用途。反之,解码(Decode)/反序列化(deserialization)把从网络、磁盘等读取的字节数组还原成原始对象(通常是原始对象的拷贝),以方便后续转载 2016-05-25 15:59:58 · 2738 阅读 · 0 评论 -
netty 地址
http://www.boyunjian.com/javadoc/io.netty/netty/4.0.0.Alpha8/_/io/netty/handler/codec/http/HttpRequestDecoder.html原创 2016-05-24 15:25:06 · 678 阅读 · 0 评论 -
同步与异步的概念
进程同步用来实现程序并发执行时候的可再现性。 一.进程同步及异步的概念 1.进程同步:就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事.就像早上起床后,先洗涮,然后才能吃饭,不能在洗涮没有完成时,就开始吃饭.按照这个定义,其实绝大多数函数都是同步调用(例如sin,isdigit等)。但是一般而言,我们在说同步、异步的时候,特转载 2016-05-26 09:56:43 · 481 阅读 · 0 评论 -
基于Netty5.0高级案例二之WebSocket中关于使用ProtoBuf传输数据介绍js部分
基于Netty5.0高级案例二之WebSocket中关于使用ProtoBuf传输数据介绍js部分前言介绍: 本案例主要介绍如何在js里把接收到的protobuf数据转换为对象与如何把对象转换为protobuf数据。为了能简单说明问题,在本案例中只有js部分,关于后台服务的像前台发送数据部分在案例一中已经介绍。环境需求: 需要github大神wiki提供的三个js转载 2016-05-26 12:00:02 · 3746 阅读 · 7 评论 -
关于如何使用websocket 接收并显示图片或者操作二进制
JS操作websocket接收的二进制,安全性能有保障,已经过一年实践考验:[javascript] view plain copy ws.onmessage = function(evt) { if(typeof(evt.data)=="string"){ textHandler(JSON.parse(evt.data));转载 2016-05-26 22:09:30 · 3442 阅读 · 0 评论 -
netty 二进制简单通信
环境:netty版本4.0.36Finaljdk7服务端:1.App.javapackage com.mind.core;import com.mind.core.net.websocket.server.NettyServer;/** * Hello world! * */public class App { public static void原创 2016-05-25 19:30:01 · 6770 阅读 · 1 评论 -
Http Post 二进制通信
客户端请求和接收(使用了httpclient4.3 和netty3.5)public static void httpPost11() { CloseableHttpClient httpClient = HttpClients.createDefault(); HttpPost httpPost = new HttpPost( "http://192.转载 2016-06-01 16:50:26 · 2549 阅读 · 0 评论 -
使用 Netty 进行 UDP 网络编程
使用 Netty 进行 UDP 网络编程 在正式开始之前,首先介绍一下TCP和UDP协议。对于做过网络开发的朋友来说,这两个协议应该都不陌生,在此仅摘录网上对两个协议的介绍给大家,仅供参考。TCP与UDP区别 TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重转载 2016-06-03 16:03:18 · 1401 阅读 · 0 评论 -
Netty 4.1中的新变化和注意点
本文翻译自官方文档New and noteworthy in 4.1,本文带你了解Netty 4.0到Netty 4.1的值得注意的改变和新特性.题外话尽管我们尽量保持向下兼容,4.1 还是有一些和4.0不完全兼容的地方. 请确保使用新的Netty版本重新编译你的应用.当你重新编译你的应用时,你可以能看到一些弃用警告. 请依照修改建议来更正它们, 这样当你升级到新的版本时会遇到原创 2016-07-11 21:29:23 · 4815 阅读 · 0 评论 -
Netty之有效规避内存泄漏
有过痛苦的经历,特别能写出深刻的文章 —— 凯尔文. 肖直接内存是IO框架的绝配,但直接内存的分配销毁不易,所以使用内存池能大幅提高性能,也告别了频繁的GC。但,要重新培养被Java的自动垃圾回收惯坏了的惰性。Netty有一篇必读的文档 官方文档翻译:引用计数对象 ,在此基础上补充一些自己的理解和细节。 1.为什么要有引用计数器Netty里四种主力的ByteBuf,其中Un转载 2016-11-07 16:44:00 · 888 阅读 · 1 评论