Java网络编程-IO多路复用(单线程)
来源:互联网 发布:淘宝达人自媒体认证 编辑:程序博客网 时间:2024/05/29 17:52
1. 简介
IO多路复用(multiplexing)属于同步IO网络模型
是以Reactor模式实现
常见的IO多路复用应用有:select、poll、epoll
有关于select的应用方式,请参阅[C语言] 基于Linux的一对一Socket简易聊天程序实例
本篇文章采用Java的NIO框架来实现单线程的IO多路复用
2. Reactor模式的组成角色
1. Reactor:负责派发IO事件给对应的角色处理。为了监听IO事件,select必须实现在Reactor中。
2. Acceptor:负责接受client的连线,然后给client绑定一个Handler并注册IO事件到Reactor上监听。
3. Handler:负责处理与client交互的事件或行为。通常因为Handler要处理与所对应client交互的多个事件或行为,为了简化设计,会以状态模式来实现Handler。
3. 代码实现
[TCPReactor.java]
[Acceptor.java]
我们先来简单点的,Handler不以状态模式实现,只以比较直觉的方式实现。
[TCPHandler.java]
最后是主程序代码
[Main.java]
下面附上客戶端代碼:
[Client.java]
0 0
- Java网络编程-IO多路复用(单线程)
- 网络编程基础(3) : IO多路复用(单线程)
- Java网络编程-IO多路复用(多线程)
- [网络编程] IO多路复用
- 小试牛刀TCP 网络编程模式,单线程多路复用实例
- Linux网络编程 IO多路复用
- Java网络编程- IO多路复用(多Reactor)(主从式Reactor)
- Linux IO多路复用之epoll网络编程
- 【UNIX】网络编程/多路复用IO服务器编码
- python 网络编程(二):IO 多路复用
- linux网络编程 IO多路复用 select epoll
- 网络编程基础(4) : IO多路复用(多线程)
- 【网络编程】IO 多路复用之 select 总结
- 【网络编程】IO 多路复用之 epoll 总结
- python网络编程--IO多路复用之epoll
- 网络编程学习:io模型之io多路复用
- java网络编程—基石:五种IO模型及原理(多路复用\Reactor\epoll)
- java网络编程(一)单线程网络编程
- 阅读徐宜生《Android群英传》的笔记——第4章 ListView 使用技巧——到4.1.7
- MongoDB干货篇之安装
- 查询不同班级,不同课程的平均成绩,按照平均成绩从大到小排序
- iOS TableView 默认选中某行
- cents7 mysql数据库安装和配置
- Java网络编程-IO多路复用(单线程)
- DOM性能优化 那些年踩过的坑
- CodeForces 645 B.Mischievous Mess Makers(水~)
- NULL和唯一约束UNIQUE的对应关系
- 容器日志处理及实现
- ul,ol,dl的区别
- MySQL实现计数器的表设计及实现
- 炫丽的Dialog弹框
- CSMA/CD