一、网络通信基本常识
wireshark 有一本书
操作系统将 TCP 那些细节全部(拆包之类的,传输层以下的所有都封装)封装在 Socket 中了。开发人员只需要关注ip 和端口号就行了。
web服务,比较适合 短连接,这种可以降低服务器的压力。长连接适合连接数不多,并且请求比较频繁的请求。
二、BIO 详解
BIO 是啥?阻塞式 IO,B 是阻塞 Blocking 的意思,比如 read 方法读取网络数据,如果没有数据,阻塞式网络编程就会阻塞住。
NIO : IO 多路复用
相对的,AIO 是异步 IO,read 和 write 操作都作为系统调用
ServerSocket.accept() ,socket.connect 、InputStream.readUTF 等方法都是阻塞方法。
三、NIO详解
NIO ,这个 N 可以作为 New 解释,或者做 no-blocking 解释。
BIO 面向流,阻塞式的
NIO (IO多路复用)面向缓冲区,非阻塞的,一个线程可以服务多个服务端。
BIO 的效率比 NIO 的效率是要高的。
NIO 三大组件:
Selector
Channel
Buffer
NIO 看了30分钟,后续的就没看了,看得有点蒙,后续再继续