共计 1915 个字符,预计需要花费 5 分钟才能阅读完成。
近日学习 Java 的网络编程,看到一个及其简单的例子,但是却实现了一次 Web 访问的功能,当然,于 Tomcat 和 Weblogic 等 Web 服务器自然是没法比,可是展现了最基本的 Web 访问的网络原理的实现,短小精悍,看了才知道,原来还可以这样。
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
public class HTTPThread implements Runnable {
private Socket socket;
private int count;
public HTTPThread(){
}
public HTTPThread(Socket socket, int count){
this.socket = socket;
this.count = count;
}
@Override
public void run() {
// TODO Auto-generated method stub
try {
OutputStream os = socket.getOutputStream();
PrintWriter pw = new PrintWriter(os);
pw.println(“<html>”);
pw.println(“<head>”);
pw.println(“<body>”);
pw.println(“This my page! You are welcome!”);
pw.println(“</body>”);
pw.println(“</head>”);
pw.println(“</html>”);
pw.flush();
pw.close();
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class TCPServer {
public static void main(String[] args){
int count = 1;
try {
ServerSocket ss = new ServerSocket(8080);
Socket s = null;
while((s=ss.accept()) != null){
System.out.println(“The visitor:” + count);
HTTPThread httpThread = new HTTPThread(s, count);
Thread thread = new Thread(httpThread);
thread.start();
count++;
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
编译运行后,通过浏览器访问 http://localhost:8080/ 就可以了,是不是很神奇呢!
推荐阅读 :
日志分析工具 Awstats 实战之 Apache 篇 - 多站点日志分析 http://www.linuxidc.com/Linux/2013-11/92273.htm
在 Ubuntu 13.10 下安装支持 SSL 的 Apache http://www.linuxidc.com/Linux/2013-11/92266.htm
再谈伪装 Apache 版本防止入侵 Web 服务器 http://www.linuxidc.com/Linux/2013-10/91179.htm
Apache Python 模块 mod_wsgi 的编译安装 http://www.linuxidc.com/Linux/2013-09/90637.htm
企业 Shell 脚本分析及切割 Apache 日志实战 http://www.linuxidc.com/Linux/2013-09/90627.htm
Linux 网站架构系列之 Apache—- 部署篇 http://www.linuxidc.com/Linux/2013-11/92304.htm