⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 httpserver.java

📁 主要是处理SSL请求的一个服务器,HttpServer.java
💻 JAVA
字号:
import java.io.*;
import java.net.*;
import java.util.StringTokenizer;
/** * This class implements a multithreaded simple HTTP *
server that supports the GET request method.* It listens on port 44, waits client requests, and * serves documents.*/
public class HttpServer {
	// The port number which the server
	// will be listening on
	public static final int HTTP_PORT = 7000;
	public ServerSocket getServer() throws Exception {return new ServerSocket(HTTP_PORT);}
	// multi-threading -- create a new connection // for each reques
public void run() {ServerSocket listen;try {listen = getServer();while(true) {Socket client = listen.accept();ProcessConnection cc = new ProcessConnection(client);}} catch(Exception e) {System.out.println("Exception: "+e.getMessage());}}
// main program
public static void main(String argv[]) throws Exception {HttpServer httpserver = new HttpServer();httpserver.run();}}class ProcessConnection extends Thread {Socket client;BufferedReader is;DataOutputStream os;public ProcessConnection(Socket s) { 
	// constructor client = s;
	try {is = new BufferedReader(new InputStreamReader(client.getInputStream()));
	os = new DataOutputStream(client.getOutputStream());
	} catch (IOException e) {
		System.out.println("Exception: "+e.getMessage());}
		this.start(); 
	// Thread starts here...this start() will call run()
	}
	public void run() {try {// get a request and parse it.
	String request = is.readLine();System.out.println( "Request: "+request );StringTokenizer st = new StringTokenizer( request );if ( (st.countTokens() >= 2) && st.nextToken().equals("GET") ) {if ( (request = st.nextToken()).startsWith("/") )request = request.substring( 1 );if ( request.equals("") )request = request + "index.html";File f = new File(request);shipDocument(os, f);} else {os.writeBytes( "400 Bad Request" );} client.close();} catch (Exception e) {System.out.println("Exception: " + e.getMessage());} }
	/*** Read the requested file and ships it * to the browser if found.*/
	public static void shipDocument(DataOutputStream out, File f) throws Exception {try {DataInputStream in = new DataInputStream(new FileInputStream(f));int len = (int) f.length();byte[] buf = new byte[len];in.readFully(buf);in.close();out.writeBytes("HTTP/1.0 200 OK\r\n");out.writeBytes("Content-Length: " + f.length() +"\r\n");out.writeBytes("Content-Type: text/html\r\n\r\n");out.write(buf);out.flush();} catch (Exception e) {out.writeBytes("\r\n\r\n");out.writeBytes("HTTP/1.0 400 " + e.getMessage() + "\r\n");out.writeBytes("Content-Type: text/html\r\n\r\n");out.writeBytes("");out.flush();} finally {out.close();}}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -