IO
Niubist_
这个作者很懒,什么都没留下…
展开
-
【NIO】NIO三剑客之一ByteBuffer介绍与使用
谈及Java NIO,最核心的三个组件就是Channel 通道ByteBuffer 读写缓冲区Selector 多路复用器核心之一就是在对ByteBuffer的读写操作上。ByteBuffer为NIO中的字节缓冲区,相对于BIO的Stream流只支持写入或者读取单向操作,ByteBuffer是双向的,支持读和写。类型DirectByteBuffer使用的是操作系统级别的内存,分配比较慢,但是数据的读写比较快,因为少了一次从系统内存到JVM内存的复制过程初始化方法:.原创 2020-07-09 16:16:50 · 565 阅读 · 0 评论 -
【BIO】基于BIO实现简单动态HTTP服务器
需求支持浏览器客户端接入根据请求的资源路径响应正确的结果支持访问静态资源支持访问动态资源当资源不存在时响应404提示当发生异常时提示500错误为保证服务器安全稳定,服务器端不可无限开启新线程思路启动ServerSocket,监听指定端口等待客户端接入,将接入的客户端交给线程池去处理,主线程继续监听客户端接入静态资源:从指定的静态资源路径去查找文件,将文件转换为字节,写入输出流动态资源:从类路径下查找响应的Servlet,调用Servlet的service处理程序,将返回..原创 2020-07-07 14:21:06 · 461 阅读 · 0 评论 -
【BIO】通过指定消息大小实现的多人聊天室-终极版本
# 前情提要:在上一篇文章BIO在聊天室项目中的演化中提到,告知对方消息已经发送完毕的方式有4种关闭Socket连接关闭输出流,socket.shutdownOutput();使用标志符号,借助字符流,Reader.readLine(),该方法会在读取到\r,\n或者\r\n时返回所读取到的内容。通过指定本次发送的数据的字节大小。告知对方从输入流中读取指定大小的字节。本文使用第四种方案来实现聊天室思路为:客户端在发送消息之前,先计算出本次发送的数据量的字节大小,比如为N个原创 2020-07-07 14:20:24 · 154 阅读 · 0 评论 -
【BIO】在聊天室项目中的演化
通过聊天室项目的演化。介绍BIO的基本用法与优缺点。提示: 注意阅读代码和注释。# 提要:第一版: echo聊天室服务器接收到客户端发送的消息,并打印服务端将客户端发送的消息经过包装后再次发送给客户端客户端断开连接eg:client: greet from socket.server: echo from server: <greet from socket.>第二版: 群聊聊天室服务器接收客户端发送的消息,并打印服务端将客户端发送的消息转发.原创 2020-07-07 14:19:12 · 163 阅读 · 0 评论