直接代碼:
package cn.tedu.core; import java.io.IOException; import java.io.OutputStream; import java.io.PrintStream; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; /**ZHEzhe這個類用來讀取服務端的程序 * 1.生命ServerSocket對象 * 2.在構造函數中完成ServerSocket對象的初始化 * 3.提供start方法,接收客戶端的請求並相應 * 4.提供main方法,啟動服務器 * */ public class WebServer { //聲明serversocket對象,,他是站在服務端的 private ServerSocket serverSocket; //在構造方法中完成初始化 public WebServer() { try { serverSocket = new ServerSocket(8080); } catch (IOException e) { e.printStackTrace(); } } //tigongstartfangfa public void start(){ try { while (true){ //持續接收客戶端請求 Socket socket = serverSocket.accept(); //向瀏覽器返回 /*組織的數據格式不符合http協議 OutputStream outputStream = socket.getOutputStream(); outputStream.write("hello".getBytes()); outputStream.flush();*/ //改造輸出格式 /*PrintWriter 輸出字符 * PrintStream 輸出除了字符還可以圖片啥的*/ PrintStream ps = new PrintStream(socket.getOutputStream()); //拼接狀態行 ps.println("HTTP/1.1 200 OK"); //響應頭,相應內容:網頁類型 ps.println("Context-Type:text/html"); //相應內容的長度 String data = "hello server~"; ps.println("Content-Length:"+data.length()); //空白行 ps.println(); //拼接相應實體內容 ps.write(data.getBytes()); ps.flush(); socket.close(); } } catch (IOException e) { e.printStackTrace(); } } //提供main方法啟動 public static void main(String[] args) { WebServer webServer = new WebServer(); //接收請求並相應 webServer.start(); } }