1.BIO模型
阻塞IO模型, 每个连接对应一个线程, 缺点线程开销大, 浪费内存和CUP时间片
// 创建一个socket
ServerSocket server = new ServerSocket(9090);
// 死循环获取socket
while (true) {
/** 阻塞1: 获取socket连接, 有连接就获取, 没有连接就一直阻塞在这里 */
Socket accept = server.accept();
// 创建一个byte数组, 用于存储数据
byte[] bytes = new byte[1024];
// 创建并启动线程获取消息内容, 每获取一个Socket连接就创建一个线程
new Thread(() -> {
try (InputStream in = accept.getInputStream()) {
while (true) {
int read = in.read(bytes);
if (read != -1){
System.out.println(new String(bytes,0,read));
} else {
break;
}
}
} catch (Exception e) {
e.printStackTrace();
}
}).start();