用socket实现简单的HTTP响应
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Arrays;
public class HttpServe {
public static void main(String[] args) throws Exception{
while(true)
{
ServerSocket serverSocket = new ServerSocket(80);
Socket socket = serverSocket.accept();
InputStream inputStream =socket.getInputStream();
InputStreamReader inputStreamReader=new InputStreamReader(inputStream);
BufferedReader bufferedReader= new BufferedReader(inputStreamReader);
String[] a= new String[20];
int i=0;
for( i=0;i<20;i++)
{
a[i]=bufferedReader.readLine();
if(a[i].equals(""))break;
System.out.println(a[i]);
}
System.out.println();
//bufferedReader.close();
// socket = serverSocket.accept();
OutputStream outputStream = socket.getOutputStream();
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream);
BufferedWriter bufferedWriter =new BufferedWriter(outputStreamWriter);
if(!"GET / HTTP/1.1".equals(a[0]))
{
bufferedWriter.write("HTTP/1.1 404\n");
//bufferedWriter.write("Content-Type:text/html;charset:utf-8\n");
bufferedWriter.write("\n");
bufferedWriter.write("<html>" +
"<head><title>404</title></head>"+
"<body>404</body></html>");
bufferedWriter.flush();
socket.close();
serverSocket.close();
continue;
}
//for(int i=0;i<14;i++)System.out.println(a[i]);
bufferedWriter.write("HTTP/1.1 200 OK\n");
bufferedWriter.write("Content-Type:text/html;charset:utf-8\n");
bufferedWriter.write("\n");
bufferedWriter.write(
"<html>" +
"<head>" +
"<link rel=\"icon\" href=\"data:;base64,=\">"+
" <meta charset=\"UTF-8\">" +
" <title>标题</title>" +
"</head>" +
"<body>" +
"<center>" +
"<h1>当前时间:" + new java.util.Date()+"</h1>" +
"</center>" +
"</body>" +
"</html>");
bufferedWriter.flush();
//bufferedWriter.close();
socket.close();
serverSocket.close();
}
}
}