**
一、实现思路
**
-
1、使用 ServerSocket 监听某一端口,然后等待连接获取 Socket对象。
-
2、创建一个类 HttpServer 继承 java.lang.Thread 类,重写 run()方法,执行浏览器请求。
-
3、获得浏览器请求,解析资源文件路径。
-
4、读取资源文件,响应给浏览器。
**
二、代码实现
**
1、ServerSocket 监听端口,获取 Socket对象
package com.httpserver.two;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
/**
* @description: 使用socket 自己写一个web服务器 ---监听端口,获取socket 对象。
* @version:v1.0
* @author:w
* @date:2018年6月6日上午11:03:36
*
*/
public class WebServer {
public void startServer(int port){
try {
@SuppressWarnings("resource")
ServerSocket serverSocket = new ServerSocket(port);
while(true){
Socket socket = serverSocket.accept();
new HttpServer(socket).start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
2、HttpServer.java类 — 具体作用看方法注释
package com.httpserver.two.fix;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.i