說起服務器大家都會覺得很高大上,但其實其最最核心的無非是通過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的不瞭解帶來的恐懼。