NIO的引入
使用BIO进行socket通信时,accept连接 和 read读 均会阻塞。
这样就会出现以下问题:
1. 第一个客户端建立连接后,但是不发送数据,server会释放cpu资源,并且等待客户端发送数据
2. 第二个客户端无法建立连接
编写一个BIOServer
public class BIOServer {
public static void main(String[] args) throws IOException {
byte[] bytes = new byte[1024];
ServerSocket serverSocket = new ServerSocket();
// 端口号+ip,ip默认本机
serverSocket.bind(new InetSocketAddress(9876));
// 阻塞--程序释放cpu资源,程序不会向下执行
// accept,专门负责通信
while (true) {
System.out.println("--等待连接--");
Socket accept = serverSocket.accept();
System.out.println("--连接成功--");
// 解阻塞,向下执行,read也会阻塞
System.out.println("--开始读数据--");
int read = accept.getInputStream().read