Java网络编程
讲解网络编程的各个详细知识点,TCP/IP协议,socket编程,NIO,AIO,BIO Netty框架等
孙靖俊
这个作者很懒,什么都没留下…
展开
-
NIO:通道Channel讲解
了解了缓冲区后,下来需要了解真正传输数据的通道Channel,Channel是做什么用的?再来简单回顾一下,通道顾名思义就是传递的介质,Channel就类似于传统IO中的流,是直接对接操作系统的,当我们处理好缓冲区后,就可以通过缓冲区对通道进行数据的输入输出,完成整个NIO的过程。 &nbs...原创 2019-06-10 17:05:27 · 523 阅读 · 0 评论 -
Netty源码分析(一):服务端启动
两个问题:1.服务端的socket在哪里初始化?2.在哪里accept连接?Netty服务端启动的四个过程1.创建服务端Channel2.初始化服务端Channel3.注册到Selector4.端口绑定创建服务端Channel的步骤通过bind方法追踪代码,如下:可以看到下面的代码:追踪进去可以看到:看看该方法是怎样创建管道的这个clazz是哪个类?在利用辅助类进行配置...原创 2019-06-30 12:45:05 · 340 阅读 · 0 评论 -
Netty源码分析(二):NioEventLoop创建过程
文章目录NioEventLoopGroup的构造函数先来看ThreadPerTaskExecutornewChild()方法创建NioEventLoop创建线程选择器chooserFactory.newChooser()NioEventLoop创建NioEventLoopGroup的构造函数默认传入nThreads为0,一直跟踪构造函数,直到最高层先来看ThreadPerTask...原创 2019-06-30 13:03:30 · 431 阅读 · 0 评论 -
NIO:文件通道与网络通道讲解
通道是java.nio的一个创新,既不是一个扩展,也不是一个增强,而是一种全新的IO交流方式,可以提供与IO服务的直接连接,Channel用于在字节缓冲区和通道另一侧的实体(文件或套接字)之间有效的传输数据类库介绍顶层接口Channel:子接口ReadableByteChannel,定义了一个通道可以读的行为子接口WritableByteChannel,定义了一个通道可以写的行为:...原创 2019-12-09 16:04:16 · 850 阅读 · 0 评论 -
NIO:缓冲区ByteBuffer方法讲解
NIO是jdk1.4后引入,是为了解决普通IO效率慢的问题。NIO将最耗时的IO操作(提取和填充缓冲区)转移回操作系统,让操作系统来完成这个操作因此可以极大的提高效率。NIO是以块为单位处理数据,传统IO是以字节为单位,所以NIO更快。 &nb...原创 2019-05-23 22:33:51 · 1411 阅读 · 0 评论 -
Unix提供的5中IO模型
转载自:http://www.tianshouzhi.com/api/tutorials/netty/221 该博主的其他博客也写的很好 IO 是主存和外部设备 ( 硬盘、终端和网络等 ) 拷贝数据的过程。 IO 是操作系统的底层功能实现,底层通过 I/O 指令进行完成。在本教程中,我们所说的IO指的都是网络IO。 ...转载 2019-05-22 19:12:14 · 614 阅读 · 0 评论 -
C/S模型:TCP,UDP构建客户端和服务器端(BIO实现)
Java中提供了socket编程来构建客户端和服务器端构建服务器端的步骤:(1)bind原创 2019-08-01 09:53:49 · 5997 阅读 · 2 评论 -
BIO实现一个简易的多客户端聊天(Java实现)
使用TCP实现一个简易版的聊天系统,首先说一下思路1.在服务器开多个线程来对应客户端的连接,服务器只做信息的中转工作画个图来理解在做一对一客户端服务器的消息交换时,只需要通过socket来不断的交换信息即可,但是现在是实现客户端和客户端之间,所以我们所发送的消息不能是简单的字符串,封装一个数据的集合来表示数据,服务器端要识别数据的一些信息,所以必须要有以下几个属性:来向,去向,数据类型,数据...原创 2019-05-16 22:27:16 · 1010 阅读 · 0 评论