一、IO、NIO
1、http服务器原理
public static void initServerSocket() {
try {
//创建一个ServerSocket,绑定一个端口
ServerSocket serverSocket = new ServerSocket(ipPort);
//获取一个来自客户端的连接
Socket clientSocket = serverSocket.accept();
//获取输入流
BufferedReader reader = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
PrintWriter writer = new PrintWriter(clientSocket.getOutputStream(), true);
String request, response;
while ((request = reader.readLine()) != null) {
if ("Done".equals(request)) {
break;
}
response = processRequest(request);//请求被服务器处理方法
writer.println(response);
}
} catch (IOException e) {
e.printStackTrace();
}HTTP服务器之所以称为HTTP服务器,是因为编码解码协议是HTTP协议,如果协议是Redis协议,那它就成了Redis服务器,如果协议是WebSocket,那它就成了WebSocket服务器,等等。
使用Netty你就可以定制编解码协议,实现自己的特定协议的服务器。
阻塞模式:
所有线程阻塞,浪费资源。