说起服务器大家都会觉得很高大上,但其实其最最核心的无非是通过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 onclick="myclick()">click on me</button>
</body>
</html>
然后我们将这个java代码运行起来,在本地测试的话就在浏览器上输入
http://localhost:9999/然后就能看到我们的页面已经显示出来了——
O(∩_∩)O~,就是这么简单,不过这个玩意儿只能当个玩具,但就是通过这个我们能看到webserver的核心使命,并打消我们对webserver的不了解带来的恐惧。