网络编程,达到一定量级绕不过去的问题高并发,尤其在智能设备越来越多的当下,信息各种互通。
IO类型
主要分为
1.同步阻塞(Blocking IO) BIO 普通的IO调用
2.同步非阻塞(Non-Blocking IO) 需要多次确认
3.异步阻塞--- 多路复用(IO Multiplexing) 通常说的NIO 指的就是这个
基于系统(linux、window)提供select/epoll 机制,才能实现NIO。
通过selector channel buffer 使用reactor模式 可以使用单线程调控N多请求。
通常使用经典的netty(在Java nio基础上封装)进行使用。
netty :api使用方便,配置性好,修复Java nio select() 空调用导致cpu% bug ,社区活跃 成熟稳定
4.异步非阻塞(Asynchronous IO) AIO
需要系统(linux、window)支持,目前window有一套异步方案,linux只是模拟,所以使用的还是NIO
网络套接字访问 需要考虑粘包 拆包 通过特定字符、固定长度、http头信息中的长度 进行包组装
暂且这样吧