加载中
【Java网络编程笔记】Netty网络编程框架(九):实现自己的rpc框架

RPC基本介绍 RPC(Remote Procedure Call)— 远程过程调用,是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程 两个...

03/12 23:32
62
【Java网络编程笔记】Netty网络编程框架(八):TCP 粘包和拆包 及解决方案

TCP 粘包和拆包基本介绍 TCP是面向连接的,面向流的,提供高可靠性服务。收发两端(客户端和服务器端)都要有一一成对的socket,因此,发送端为了将多个发给接收端的包,更有效的发给对方,使...

03/10 18:25
98
【Java网络编程笔记】Netty网络编程框架(六):Netty编解码器和handler的调用机制

基本说明 netty的组件设计:Netty的主要组件有Channel、EventLoop、ChannelFuture、ChannelHandler、ChannelPipeline等 ChannelHandler充当了处理入站和出站数据的应用程序逻辑的容器。例如,...

03/10 17:39
67
【Java网络编程笔记】Netty网络编程框架(七):在netty中使用 Google Protobuf 传输数据

编码和解码的基本介绍 编写网络应用程序时,因为数据在网络中传输的都是二进制字节码数据,在发送数据时就需要编码,接收数据时就需要解码 [示意图] codec(编解码器) 的组成部分有两个:dec...

【Java网络编程笔记】Netty应用实例:通过WebSocket实现服务器和客户端长连接

实例要求: Http协议是无状态的, 浏览器和服务器间的请求响应一次,下一次会重新创建连接. 要求:实现基于webSocket的长连接的全双工的交互 改变Http协议多次请求的约束,实现长连接了, 服务...

03/08 22:41
234
【Java网络编程笔记】Netty应用实例:心跳检测

实例要求: 编写一个 Netty心跳检测机制案例, 当服务器超过3秒没有读时,就提示读空闲 当服务器超过5秒没有写操作时,就提示写空闲 实现当服务器超过7秒没有读或者写操作时,就提示读写空闲 ...

03/08 22:33
107
【Java网络编程笔记】Netty应用实例:群聊系统

实例要求 编写一个 Netty 群聊系统,实现服务器端和客户端之间的数据简单通讯(非阻塞) 实现多人群聊 服务器端:可以监测用户上线,离线,并实现消息转发功能 客户端:通过channel 可以无阻...

03/08 22:04
118
【Java网络编程笔记】Netty网络编程框架(五):netty核心模块组件

Bootstrap/ServerBootstrap Bootstrap 意思是引导,一个 Netty 应用通常由一个 Bootstrap 开始,主要作用是配置整个 Netty 程序,串联各个组件。Netty 中 Bootstrap 类是客户端程序的启动引导...

03/08 11:14
105
【Java网络编程笔记】Netty网络编程框架(四):Netty异步模型

基本介绍 异步的概念和同步相对。当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的组件在完成后,通过状态、通知和回调来通知调用者。 Netty 中的 I/O 操作是异步的,...

03/07 21:26
134
【Java网络编程笔记】Netty网络编程框架(三):Netty任务队列

netty任务队列 在ChannelHandler中,如果我们有一个非常耗时长的业务,在同步运行时可能会阻塞正常的业务流程,此时可以考虑异步执行,将耗时久的操作提交该 channel 对应的NIOEventLoop 的 ...

03/07 17:38
101
【Java网络编程笔记】Netty网络编程框架(二):Netty入门实例

netty快速入门实例:TCP服务 实例要求:使用IDEA 创建Netty项目 Netty 服务器在 6668 端口监听,客户端能发送消息给服务器 "hello, 服务器~" 服务器可以回复消息给客户端 "hello, 客户端~" ...

03/07 11:36
111
【Java网络编程笔记】Netty网络编程框架(一):从Reactor模型到Netty模型

原生NIO存在的问题 NIO 的类库和 API 繁杂,使用麻烦:需要熟练掌握 Selector、ServerSocketChannel、SocketChannel、ByteBuffer 等。 需要具备其他的额外技能:要熟悉 Java 多线程编程,因为...

【Java网络编程笔记】NIO编程(七):NIO零拷贝

零拷贝基本介绍 零拷贝是网络编程的关键,很多性能优化都离不开。 在 Java 程序中,常用的零拷贝有 mmap(内存映射) 和 sendFile。那么,他们在 OS 里,到底是怎么样的一个的设计?我们分析 ...

【Java网络编程笔记】NIO编程(六):NIO 网络编程应用实例-群聊系统

实例要求: 编写一个 NIO 群聊系统,实现服务器端和客户端之间的数据简单通讯(非阻塞) 实现多人群聊 服务器端:可以监测用户上线,离线,并实现消息转发功能 客户端:通过channel 可以无阻塞...

03/05 18:20
108
【Java网络编程笔记】NIO编程(五):NIO 非阻塞编程

NIO 非阻塞 网络编程原理 NIO 非阻塞 网络编程相关的(Selector、SelectionKey、ServerScoketChannel和SocketChannel) 关系梳理图 对上图的说明: 当客户端连接时,会通过ServerSocketChannel...

03/03 22:30
137
【Java网络编程笔记】NIO编程(四):选择器(selector)

基本介绍 Java 的 NIO,用非阻塞的 IO 方式。可以用一个线程,处理多个的客户端连接,就会使用到Selector(选择器) Selector 能够检测多个注册的通道上是否有事件发生(注意:多个Channel以事件...

【Java网络编程笔记】NIO编程(三):通道(Channel)

基本介绍 NIO的通道类似于流,但有些区别如下: 通道可以同时进行读写,而流只能读或者只能写 通道可以实现异步读写数据 通道可以从缓冲读数据,也可以写数据到缓冲: BIO 中的 stream 是单向...

03/02 23:10
94
【Java网络编程笔记】NIO编程(二):缓冲区(Buffer)

基本介绍 缓冲区(Buffer):缓冲区本质上是一个可以读写数据的内存块,可以理解成是一个容器对象(含数组),该对象提供了一组方法,可以更轻松地使用内存块,,缓冲区对象内置了一些机制,能...

【Java网络编程笔记】NIO编程(一):NIO基本介绍

NIO介绍 Java NIO 全称 java non-blocking IO,是指 JDK 提供的新 API。从 JDK1.4 开始,Java 提供了一系列改进的输入/输出的新特性,被统称为 NIO(即 New IO),是同步非阻塞的 NIO 相关类都...

03/02 21:37
226
【Java网络编程笔记】BIO编程

I/O 模型基本说明 I/O 模型简单的理解:就是用什么样的通道进行数据的发送和接收,很大程度上决定了程序通信的性能 Java共支持3种网络编程模型/IO模式:BIO、NIO、AIO Java BIO : 同步并阻塞...

03/02 16:52
142

没有更多内容

加载失败,请刷新页面

返回顶部
顶部