这里是引用B站一位UP主的代码,地址为视频地址
无线程
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class MockTomcat {
public static void main(String[] args) {
try {
//创建一个服务器 127.0.0.1:10010
ServerSocket serverSocket = new ServerSocket(10010);
while(true){
//接收客户端发送的信息
Socket acceptSocket = serverSocket.accept();
InputStream inputStream = acceptSocket.getInputStream();
//BufferReader读取信息
String line = null;
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
while((line = bufferedReader.readLine())!=null){
if("".equals(line)){
break;
}
System.out.println(line);
}
//关闭客户端发送信息
acceptSocket.shutdownInput();
//服务器返回信息
OutputStream outputStream = acceptSocket.getOutputStream();
//PrintWriter返回信息
PrintWriter printWriter = new PrintWriter(outputStream);
//申明一个固定格式
printWriter.println("HTTP/1.1 200 OK");
printWriter.println("Content-Type: text/html; charset=utf-8");
printWriter.println();//必须回车一下
printWriter.println("<html><body><div style = 'color:red;font-size:33px;'><h1>Hello Tomcat!</h1></div></body></html>");
printWriter.flush();
//关闭服务器返回信息
acceptSocket.shutdownOutput();
//关闭服务器
acceptSocket.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用线程
线程类
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class SocketMock {
public static void main(String[] args) {
try {
//创建一个服务器 127.0.0.1:10010
ServerSocket serverSocket = new ServerSocket(10010);
while(true){
//接收客户端发送的信息
Socket acceptSocket = serverSocket.accept();
new Thread(new RequestHandle(acceptSocket)).start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
调用类
import java.io.*;
import java.net.Socket;
public class RequestHandle implements Runnable{
private Socket acceptSocket;
public RequestHandle(Socket acceptSocket){
this.acceptSocket = acceptSocket;
}
@Override
public void run() {
try {
InputStream inputStream = acceptSocket.getInputStream();
//BufferReader读取信息
String line = null;
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
while((line = bufferedReader.readLine())!=null){
if("".equals(line)){
break;
}
System.out.println(line);
}
//关闭客户端发送信息
acceptSocket.shutdownInput();
//服务器返回信息
OutputStream outputStream = acceptSocket.getOutputStream();
//PrintWriter返回信息
PrintWriter printWriter = new PrintWriter(outputStream);
//申明一个固定格式
printWriter.println("HTTP/1.1 200 OK");
printWriter.println("Content-Type: text/html; charset=utf-8");
printWriter.println();//必须回车一下
printWriter.println("<html><body><div style = 'color:red;font-size:33px;'><h1>Hello Tomcat!</h1><br><a href = 'http://www.baidu.com'>百度</a></div></body></html>");
printWriter.flush();
//关闭服务器返回信息
acceptSocket.shutdownOutput();
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
//关闭服务器
if(acceptSocket!=null){
acceptSocket.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}