Java—BIO模型
利用 BIO 模型(传统阻塞 IO 模型)实现多用户访问
源代码
Server类
public class server {public static void main(String[] args) {ExecutorService executorService= Executors.newFixedThreadPool(6);try {ServerSocket serverSocket=new ServerSocket(9999);while (true){Socket socket =serverSocket.accept();executorService.execute(new SocketHandle(socket));}} catch (IOException ioException) {executorService.shutdown();ioException.printStackTrace();}}
}
SocketHandle类
public class SocketHandle implements Runnable {private Socket socket;public SocketHandle(Socket socket) {this.socket = socket;}@Overridepublic void run() {try {InputStreamReader in=new InputStreamReader(socket.getInputStream());BufferedReader bufferedReader=new BufferedReader(in);PrintWriter out=new PrintWriter(socket.getOutputStream());String client="<"+socket.getInetAddress()+":"+socket.getPort()+">";String req=bufferedReader.readLine();System.out.println(client+" say: "+req);String ret=client+",Hello,too!";out.println(ret);out.flush();out.close();bufferedReader.close();socket.close();}catch (Exception e){e.printStackTrace();}}
}
Test类
public class test {public static void main(String[] args) throws Exception {Socket socket=new Socket("localhost",9999);InputStreamReader inputStreamReader=new InputStreamReader(socket.getInputStream());BufferedReader bufferedReader=new BufferedReader(inputStreamReader);PrintWriter writer=new PrintWriter(socket.getOutputStream());writer.println("Hello Sever");writer.flush();System.out.println("Server say:"+bufferedReader.readLine());writer.close();bufferedReader.close();socket.close();}
}
Java—BIO模型相关推荐
- java BIO模型demo
注意点是BIO是java的传统编程模型,就是java.io包下和java.net包下 是一个客户端和服务端的建立的连接对应一个线程,socket会进行 write()/read()BIO缺点是线程资源 ...
- 【Netty】IO 模型简介 ( Netty 特点 | Netty 应用场景 | Java 三种 IO 模型 | BIO 模型 )
文章目录 I . Netty 简介 II . Netty 应用场景 III . Java I/O 模型 IV . BIO 概念 V . BIO 开发流程 VI . BIO 实例 VII . BIO 模 ...
- netty发送数据_【Netty】JAVA IO模型
为什么要学Netty? 其实我们每学一样东西,就要了解学这个的必要性.那么为什么要学Netty呢. 其实但凡涉及网络通信就必然离不开网络编程.Netty目前作为JAVA网络编程最热门的框架,毫不夸张的 ...
- 你对Java网络编程了解的如何?Java BIO 网络编程 | Netty 前期知识
一步一步走来,之前去学习了JUC并发编程知识,现在终于到Java IO网络编程啦,难啊. 一.BIO介绍 引入: 随着技术的发展,两个或以上的程序必然需要进行交互,于是提供了一种端到端的通信,相当于对 ...
- JAVA BIO与NIO、AIO的区别
引用:https://blog.csdn.net/ty497122758/article/details/78979302 IO的方式通常分为几种,同步阻塞的BIO.同步非阻塞的NIO.异步非阻塞的A ...
- Java BIO编程
I/O 模型 1.I/O 模型简单的理解:就是用什么样的通道进行数据的发送和接收,很大程度上决定了程序通信的性能. (比如客户端和服务器端进行通信用的是单通道还是双通道,异步通信还是同步通信,是阻塞的 ...
- java BIO/NIO/AIO 学习
参考地址 https://www.cnblogs.com/diegodu/p/6823855.html 一.了解Unix网络编程5种I/O模型 1.1.阻塞式I/O模型 阻塞I/O(blocking ...
- OSI网络模型,IO模型,BIO模型,NIO模型,AIO模型,TCP/IP协议
文章目录 一.OSI网络模型 1.1.网络的7层架构 1.1.1.七层架构的网络图 1.1.2 七层架构的功能和作用 1.物理层 2.数据链路层 3.网络层 4.传输层 5.会话层 6.表示层 7.应 ...
- 二、JAVA BIO
NIO 目录 文章目录 二.JAVA BIO 1. Java BIO基本介绍 2. java BIO工作机制 3.传统的BIO编程实例回顾 3.1.客户端案例如下 3.2.服务端案例如下 3.3.输出 ...
最新文章
- win7利用remote连接服务器,显示发生身份验证错误 要求的函数不受支持
- 使用Bot Service创建Bot Framework
- sql server 2005 T-SQL CEILING (Transact-SQL)
- 框架:HTTP请求的表单提交的几种方式
- (仿头条APP项目)7.首页标签页完善和微头条页面设计实现
- 【opencv4】opencv教程 C++ 4、Mat对象(深拷贝:clone()、copyTo(),create()创建图片,zeros()、eye()初始化空白图像,Scalar()创建向量)
- 【小松教你手游开发】【面试必读(编程基础)】堆和栈的区别(转过无数次的文章)...
- 表设计避免使用保留字
- 深入浅出解释深拷贝、浅拷贝、对象拷贝、引用拷贝原理和应用
- 电脑技巧:如何更改Win10桌面文件路径,轻松给系统盘瘦身!
- JS面向对象编程之封装
- 笨办法学 Python · 续 练习 9:`sed`
- PDF to Word OCR for Mac(PDF文档转换成word格式)
- 适合人工智能开发的5种最佳编程语言优缺点对比
- wordpress英文主题怎样汉化成中文网站模板
- redirect_uri参数错误
- 多目标蚁群算法路径规划(一)-----从数据设计到毕业论文系列
- win10系统解决office16的VBE6EXT.OLB不能被加载的问题
- 【开发问题】Android——Fragment must be a public static class to be properly recreated from instanc
- Apache 的 X-sendfile
热门文章
- C++中const char *p和char const *p
- 【计算机系统设计】实践笔记(2)数据通路构建:第一类R型指令分析(1)
- Java NIO Channel
- 爆赞!Jetpack-MVVM-高频提问和解答,满满干货指导
- 移动端上传大文件到服务器,android上传大文件到服务器地址
- Android基础夯实--你了解Handler有多少?
- 学习Spring Data JPA
- 在使用ToolBar + AppBarLayout,实现上划隐藏Toolbar功能,遇到了一个坑。
- spring管理的类如何调用非spring管理的类
- linux驱动分离分层的概念