自己動手寫最簡單的webserver

說起服務器大家都會覺得很高大上,但其實其最最核心的無非是通過http端口傳遞數據流,現在我就貼出最最原始簡單的webserver源碼,只有不到20行代碼就能實現一個加載靜態html的服務器啦,希望大家自己試試就能取出對服務器神祕莫測的感覺了。

public class Demo {
	public static void main(String[] args) throws Exception {
		BufferedReader bufferedReader = null;
		OutputStream os = null;
		Socket socket = null;
		try {
			ServerSocket serverSocket=new ServerSocket(9999);
			while(true){
			System.out.println("waiting for clients");
			socket=serverSocket.accept();
			os=socket.getOutputStream();
			bufferedReader=new BufferedReader(new FileReader("D:/lttclaw.html"));
			String bufstr="";
			while((bufstr=bufferedReader.readLine())!=null){
				os.write(bufstr.getBytes());
				}
			}
		} catch (IOException e) {
			e.printStackTrace();
			bufferedReader.close();
			os.close();
			socket.close();
		}
	}

}

這個demo我指定了本地D;\下的一個靜態html文件,這個html也簡單得很,貼代碼:

<!DOCTYPE html>
<html>
	<head>
		<script>
		function myclick()
		{
			alert("i am clicked!");
		}
		</script>
	</head>

	<body>
		<button οnclick="myclick()">click on me</button>
	</body>
</html>

然後我們將這個java代碼運行起來,在本地測試的話就在瀏覽器上輸入

http://localhost:9999/然後就能看到我們的頁面已經顯示出來了——


O(∩_∩)O~,就是這麼簡單,不過這個玩意兒只能當個玩具,但就是通過這個我們能看到webserver的核心使命,並打消我們對webserver的不瞭解帶來的恐懼。



發佈了41 篇原創文章 · 獲贊 1 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章