代碼實現一個簡單的webserver服務器


直接代碼:

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();
    }

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM