很多没有接触过web服务器的人可能会觉得web服务器是一件很牛的事情。我想说想写一个性能很好的web服务器是一件很困难的事,但是如果是一个demo还是很简单的。
基于Executor来构建Web服务器是非常容易的。用一个简单的demo来说明一下web服务器。
首先得明白一组java组件,Socket和ServerSocket
Socket负责和2个进程间的交互
ServerSocket负责监听套接字连接
一个简单demo
package com.wsy.thread;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
* 基于Executor的web服务器
* @author shuyweng
*
*/
public class ExecutorsDemo {
private static final int COUNTS = 100;
private static final ExecutorService pool = Executors.newFixedThreadPool(COUNTS);
public static void main(String[] args) throws IOException{
ServerSocket socket = new ServerSocket(8080);
while(true){
final Socket conn = socket.accept();
Runnable task = new Runnable() {
@Override
public void run() {
// handleRequest(conn)
System.out.println("处理套接字");
}
};
pool.execute(task);
}
}
}
web 服务器的底层的逻辑~