netty
文章平均质量分 67
yoyocheknow
菜鸟一枚
展开
-
NIO相关概念介绍:缓冲区Buffer,通道Channel,多路复用器Selector
本篇博文参考书籍《Netty权威指南》。1、缓冲区BufferBuffer是一个对象。它包含一些要写入或者读出的数据。在面向流的I/O中,可以将数据写入或者将数据直接读到Stream对象中。在NIO中,所有的数据都是用缓冲区处理。这也就是很多博客说,IO是面向流的,NIO是面向缓冲区的。缓冲区实质是一个数组,通常它是一个字节数组(ByteBuffer),也可以使用其他类的数组。但是一个缓冲...原创 2018-07-16 18:16:29 · 812 阅读 · 0 评论 -
Netty线程模型前言
本章介绍netty的线程模型,在讲netty线程模型之前,我们先自己用Java的NIO模仿netty的线程模型写一个例子。代码地址:GitHub代码 代码结构如下所示: 我们先看start类:package com.cn;import java.net.InetSocketAddress;import java.util.concurrent.Executors;impor...原创 2018-07-17 17:04:37 · 163 阅读 · 0 评论 -
Netty基础知识IO模型
总言:netty是一款基于NIO(Nonblocking I/O,非阻塞IO)开发的网络通信框架。准备知识:IO,NIO下面介绍四种I/O模型。1、阻塞I/O模型:缺省情况下所有文件操作都是阻塞的。当一个线程去读取某个缓冲区时,如果缓冲区没有数据,那么这个线程会一致等待下去,这就是阻塞I/O。伪代码如下:{// read阻塞 read(socket, buffer);// 处理buffe...原创 2018-07-14 10:11:36 · 4303 阅读 · 0 评论 -
Netty之HelloWorld-简单服务端编写
Netty之HelloWorld本例子用的是Netty3.0版本的jar,后面会用5.0版本的。 引用的jar包如上图所示。 1、接下来创建Server类package com.server;import java.net.InetSocketAddress;import java.util.concurrent.ExecutorService;import java....原创 2018-07-14 10:54:16 · 603 阅读 · 0 评论 -
Netty 之客户端
接着上篇,这篇写一个简单的客户端。netty版本还是3.0的。1、声明一个Client类:package com.client;import java.net.InetSocketAddress;import java.util.Scanner;import java.util.concurrent.ExecutorService;import java.util.concu...原创 2018-07-14 16:50:35 · 8318 阅读 · 1 评论 -
NIO之传统socket分析
我们知道netty是基于nio的服务器,客户端网络编程框架。我们先来看下NIO之前,传统socket服务端是如何开发,并起作用的。下面是传统阻塞IO的服务端代码:package OIO;import java.io.IOException;import java.io.InputStream;import java.net.ServerSocket;import java.net....原创 2018-07-15 11:16:17 · 273 阅读 · 0 评论 -
NIO服务端分析
上篇写到了传统socket ,阻塞I/O的分析。这篇主要写NIO服务端代码。服务端代码:package NIO;import java.io.IOException;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.channels.SelectionKey;import j...原创 2018-07-15 15:23:50 · 186 阅读 · 0 评论