Stella981 Stella981
3年前
NIO框架入门(四):Android与MINA2、Netty4的跨平台UDP双向通信实战
概述本文演示的是一个Android客户端程序,通过UDP协议与两个典型的NIO框架服务端,实现跨平台双向通信的完整Demo。当前由于NIO框架的流行,使得开发大并发、高性能的互联网服务端成为可能。这其中最流行的无非就是MINA和Netty了,MINA目前的主要版本是MINA2(https://www.oschina.net/ac
Stella981 Stella981
3年前
Netty中粘包和拆包的解决方案
粘包和拆包是TCP网络编程中不可避免的,无论是服务端还是客户端,当我们读取或者发送消息的时候,都需要考虑TCP底层的粘包/拆包机制。TCP粘包和拆包TCP是个“流”协议,所谓流,就是没有界限的一串数据。TCP底层并不了解上层业务数据的具体含义,它会根据TCP缓冲区的实际情况进行包的划分,所以在业务上认为,一个完整的包可能会被TCP拆分成多个包
Wesley13 Wesley13
3年前
Java轻量化Socket长连接客户端
4年前写过一个长连接的库 https://my.oschina.net/hes/blog/158404(https://my.oschina.net/hes/blog/158404),当初因为需求简单就简单封装了一下,但是在当下的互联网时代,信息的即时性的要求也越来越高,所以出现了很多这样那样的即时通讯的库,当初为了写一个IM的sdk而使用了Netty框
Stella981 Stella981
3年前
Netty权威指南 第2章NIO 入门读书笔记
2.1传统的BIO编程采用BIO通信模型的服务端,通常由一个独立的Acceptor线程负责监听客户端的连接,它接收到客户端连接请求之后为每个客户端创建一个新的线程进行链路处理,处理完成之后,通过输出流返回应答给客户端,线程销毁。这就是典型的一请求一应答通信模型。如果不创建线程,还是在主线程中处理请求,则整个服务端是单线程处理能力,待第一个客户端请
Wesley13 Wesley13
3年前
JAR冲突问题的解决以及运行状态下如何查看加载的类
今天碰到群里小伙伴问,线上程序好像有多个不同版本的Netty包,怎么去看到底加载了哪一个?在说如何看之前,先来说说,当你开始意识到项目里有多个不同版本的Jar包,都是因为遇到了这几个异常:1.java.lang.NoSuchMethodException:自己代码中调用了某个方法,因为加载了其他版本的jar,这个版本正好没这个方法。2.